常用语句
结构
表结构
ALTER TABLE [ dbo] . [ INPAT_FEE] ADD ATC NVARCHAR( 20 )
alter table [ dbo] . [ 第五部分] add id int identity ( 1 , 1 ) not null
ALTER TABLE [ dbo] . [ INPAT_FEE] DROP COLUMN ATC
Alter table [ 表名] alter column [ 列名] 类型
EXEC sp_rename '表名.[字段旧名]' , '字段新名' , 'COLUMN' ;
复制表结构
SELECT * into
FROM 源表 where 1 <> 1
select top 0 * into
查询
EXCEPT,UNION,INTERSECT
库锁
-- 排它锁原因无法修改库名
-- 查看库锁
select spid
from master.dbo.sysprocesses
where dbid=db_id('ClothCommerce')
--
kill 54
kill 58
-- 分离后在路径下修改文件名和日志名 然后重新附加
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA
表锁
select request_session_id spid, OBJECT_NAME( resource_associated_entity_id) tableName
from sys. dm_tran_locks where resource_type= 'OBJECT'
declare @spid int
Set @spid = 57
declare @sql varchar ( 1000 )
set @sql = 'kill ' + cast( @spid as varchar )
exec ( @sql )
快捷查询
-- 查询单库下所有表条数
select 'select count(*) from '+name from sysobjects where xtype='U'
-- 查询存过
select * from sys.objects where type = 'P';
内容更改
-- 去空格及换行符
-- char(10)换行键 char(13)回车键
REPLACE('需要替换的字符串', CHAR(13) + CHAR(10),'')
--
cast
cast( 细目代码 AS money)
行列转换
空格间隔取值
-- 改 [诊断或手术编码1] 就好
-- 第二个值
select substring([主要诊断],charindex(' ',[主要诊断])+1,len([主要诊断])-charindex(' ',[主要诊断])) from [dbo].[表7];
-- 第一个值
select substring([主要诊断],1,charindex(' ',[主要诊断])-1) from [dbo].[表7] where charindex(' ',[主要诊断])>0;
行转列
SELECT 列 ,
value = ( STUFF( ( SELECT ';' + 列1 + 列2
FROM 表名
WHERE 列 = Test. 列
FOR
XML PATH( '' )
) , 1 , 1 , '' ) )
FROM 表名 AS Test
GROUP BY 列;
SELECT *
FROM 表名
PIVOT ( sum ( 列名2 ) FOR 列名1 IN ( [ 语文] , [ 数学] , [ 英语] ) ) T
存储过程
系统存储过程
exec sp_databases;
exec sp_tables;
exec sp_columns test;
exec sp_helpIndex student;
exec sp_helpConstraint student;
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures' ;
exec sp_rename test1, test;
exec sp_renamedb myTempDB, myDB;
exec sp_defaultdb 'sa' , 'DB_MEMO' ;
exec sp_helpdb;
exec sp_helpdb master;
执行存过
exec 过程名
exec 过程名 参数
其他
大小写转换
-- Mircrosoft SQL Server Management Studio
-- 小写转换大写
Ctrl + shift + U
-- 大写转换小写
Ctrl + shift + L
以A-Z开头或字母开头
SELECT * FROM [ DB_DRG] . [ dbo] . [ 表7 ] where 主要诊断 not like '[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%'