推荐链接
链接目录
SQL Server
函数
CHARINDEX(查找一个字符串在另一个字符串中第一次出现的位置的函数)
CHARINDEX ( expressionToFind, expressionToSearch [ , startLocation] )
expressionToFind:要查找的字符串或字符表达式。
expressionToSearch:要在其中查找的字符串或字符表达式。
startLocation:可选参数,指定开始搜索的位置,默认为 1 。
SELECT CHARINDEX ( 'world' , 'Hello world' ) AS filed1;
输出:7
CAST (将列或表达式的数据类型转换为指定类型)
CAST ( MyColumn AS varchar)
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'
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' ;
序列(表中需要添加多个自增字段)
CREATE SEQUENCE 序列名称
START WITH 序列的起始值
INCREMENT BY 自增的步长
MINVALUE 序列最小值;
ALTER TABLE 表名
ADD 字段名称 INT DEFAULT NEXT VALUE FOR 序列名称;