SQL Server

推荐链接

链接目录

SQL Server

函数

CHARINDEX(查找一个字符串在另一个字符串中第一次出现的位置的函数)

CHARINDEX(expressionToFind, expressionToSearch [, startLocation])
expressionToFind:要查找的字符串或字符表达式。
expressionToSearch:要在其中查找的字符串或字符表达式。
startLocation:可选参数,指定开始搜索的位置,默认为 1SELECT CHARINDEX('world', 'Hello world') AS filed1;
输出:7

CAST (将列或表达式的数据类型转换为指定类型)

//将 MyColumn 列转换为 varchar 类型
CAST(MyColumn AS varchar)

//将 MyExpression 表达式转换为 decimal(10,2) 类型
CAST((MyColumn * 100) AS decimal(10,2))



'如果换成Mysql的语法'
CONVERT(MyColumn , CHAR)

清除全表数据

TRUNCATE TABLE 表名 ;

SQL Server以旧表创建新表并且插入数据

//创建新表的时候可以 插入原有旧表的所有数据。
SELECT TOP 0 * 
INTO 新表(必须不存在) FROM 旧表;

// 自由控制需要插入的数据
INSERT INTO 新表(必须存在)
SELECT  * FROM 旧表;

SQL Server字段操作

//新增字段
ALTER TABLE 表名
ADD 字段名 VARCHAR(50) DEFAULT '默认值';

//新增计算表达式的字段
ALTER TABLE 表名
ADD 字段(必须不存在) AS (字段(必须存在) * 字段(必须存在));

//修改字段类型
ALTER TABLE 表名
ALTER COLUMN 列名 新数据类型;

//修改原来字段名称
exec sp_rename '表名.原字段','新字段'

//删除字段
ALTER TABLE 表名
DROP COLUMN 字段名;

SQL Server查询数据库所有的表名-字段

//表名
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='subject' 

//利用sysobjects系统表 在这个表中,在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都有对应一行,我们在该表中筛选出xtype等于U的所有记录,就为数据库中的表了。 示例语句如下:
select * from sysobjects where xtype='U'


//整个数据库的所有字段
select  * from (
SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME in (select name from sysobjects where xtype='u')
) as t

SQL Server 约束

//查看约束
SELECT  *
FROM    sysobjects
WHERE   OBJECT_NAME(parent_obj) = '表名'

//添加约束
alter table 数据库名.[dbo].表名 add constraint 约束名 unique(列名1,列名2);

//删除约束
ALTER TABLE 表名 DROP CONSTRAINT 约束名

SQL Server 导出数据

$strTemplatePath ="E:\\RiskRaiderWeb\\Template\\导出模板.xls ";
$tmpFileName ="导出文件名称" .$fileName . ".xls";
$strDestPath= "E:\\RiskRaiderWeb\\Template\\temp\\". $tmpFileName;
$moveResult = M()->execute("exec master.dbo.xp_cmdshell 'copy ". $strTemplatePath.$strDestPath."'");
$result = M()->query("insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 8.0;HDR=YES;IMEX=0;DATABASE=" . $strDestPath . "','SELECT * FROM [Sheet1$]') " .$sql);
$this->ajaxReturn($tmpFileName, 'JSON');

SQL Server 解析XML

DECLARE
@xml1 VARCHAR(500)= 
'<ApproveProcess>
<Approve>
<ApproveDate>2023-02-22 00:38:55</ApproveDate>
<ApproverID>5561</ApproverID>
<ApproverName>作者</ApproverName>
<IsApproved>1</IsApproved>
<IsApprovedText>xxxxxxx</IsApprovedText>
<Memo>备注</Memo>
</Approve>
</ApproveProcess>'

DECLARE
@RootXml XML,
@XmlTable XML
SET @RootXml= @xml1
SELECT c.value('(ApproverName/text())[1]','VARCHAR(5000)') tabXml FROM @RootXml.nodes('/ApproveProcess/Approve') as T(c)
SELECT c.value('(IsApprovedText/text())[1]','VARCHAR(5000)') tabXml FROM @RootXml.nodes('/ApproveProcess/Approve') as T(c)
SELECT c.value('(Memo/text())[1]','VARCHAR(5000)') tabXml FROM @RootXml.nodes('/ApproveProcess/Approve') as T(c)

判断表中是否有自增字段

SELECT COLUMN_NAME, IS_NULLABLE, DATA_TYPE, COLUMN_DEFAULT, COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') AS IS_IDENTITY
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'dbo.table';
/**
将 'dbo.table' 替换为你要检查的表名。
执行此查询后,将返回表中每个列的信息,其中包括列名(COLUMN_NAME)、是否可为 NULL(IS_NULLABLE)、数据类型(DATA_TYPE)、默认值(COLUMN_DEFAULT)以及是否为自增字段(IS_IDENTITY)。如果某一列的 IS_IDENTITY 值为 1,则表示该列为自增字段。
*/

序列(表中需要添加多个自增字段)


CREATE SEQUENCE 序列名称
    START WITH 序列的起始值
    INCREMENT BY 自增的步长
    MINVALUE 序列最小值;

ALTER TABLE 表名
ADD 字段名称 INT DEFAULT NEXT VALUE FOR 序列名称;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值