普通sql
--查询数据库连接数 SELECT * FROM master.dbo.sysprocesses WHERE dbid IN ( SELECT dbid FROM master.dbo.sysdatabases WHERE NAME=\'数据库表名\' ) --查询锁表 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type=\'OBJECT\' ORDER BY request_session_id --杀掉进程 declare @spid int Set @spid = 182 --锁表进程 declare @sql varchar(1000) set @sql=\'kill \'+cast(@spid as varchar) exec(@sql)
--远程查询 --开户外围 exec sp_configure \'show advanced options\',1 reconfigure exec sp_configure \'Ad Hoc Distributed Queries\',1 reconfigure ------------------------------- select * from openrowset( \'SQLOLEDB\', \'服务器ip\'; \'数据库登录账号\'; \'数据库登录密码\',数据库名.dbo.表名) ------------------------------- --关闭外围 exec sp_configure \'show advanced options\',0 reconfigure exec sp_configure \'Ad Hoc Distributed Queries\',0 reconfigure
--压缩备份
@(50)
@(50)
设置@=\'数据\'
设置@=\'d:\\.bak\'
@ 到磁盘 = @ 带初始化,统计数据 = 20
--sql 事务 BEGIN TRAN 事物名 IF(@@ERROR<>0)BEGIN ROLLBACK TRAN 事物名;RETURN;END COMMIT TRAN 事物名 --数据库清缓存 DBCC DROPCLEANBUFFERS --忽略自增列 按照sql语句的id新增 SET IDENTITY_INSERT [dbo].[EduMenuFunction] ON --插入语句 SET IDENTITY_INSERT [dbo].[EduMenuFunction] OFF --修改语句联表修改 UPDATE S_GB_StudentBasicInfo SET BH =ci.BH from S_GB_StudentBasicInfo sbi WITH(NOLOCK),C_GB_ClassInfo ci WITH(NOLOCK) where sbi.BJID=CONVERT(nvarchar(20),ci.ID) UPDATE A SET A.c2 =B.c3 from A inner join B on A.c1=B.c1 --创建索引 CREATE INDEX DataReportIndex ON S_GB_StudentBasicInfo_DataReport(SFZJH (ASC), XB (ASC), CSRQ (ASC), DataYear (ASC), STATUS (ASC)) --修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称 -------说明:添加一个表的字段的约束并指定默认值 --修改字段名: alter table 表名 rename column A to B --修改字段类型: alter table 表名 alter column UnitPrice decimal(18, 4) not null --增加字段: alter table 表名 ADD 字段 类型 NOT NULL Default 0 --添加字段 [CardRecord][Birthday] IF NOT EXISTS( SELECT * from syscolumns where [id]=object_id(\'CardRecord\') AND [name]=\'Birthday\' ) BEGIN Alter Table CardRecord Add Birthday DATETIME NOT NULL DEFAULT(\'1900-01-01 00:00:00\') ; EXEC sp_addextendedproperty \'MS_Description\', \'出生日期\', \'user\', dbo, \'table\',CardRecord, \'column\', Birthday; END --清除表数据,自增列从1开始 truncate table 表名; --查询所有的子节点 with cte as ( select * from base_Company where Id = \'E7F5395E-6D11-4490-B3AD-513574268CF6\' --查询节点 union all select a.* from base_Company a join cte b on a.ParentId = b.id where a.id is not null ) select * from cte --创建数据库 USE master create database AdayMS on primary -- 默认就属于primary文件组,可省略 ( name=\'AdayMS_data\', -- 主数据文件的逻辑名称 filename=\'E:\数据库\jaday\AdayMS\AdayMS_data.mdf\', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15%--主数据文件的增长率 ) log on ( name=\'AdayMS_log\', filename=\'E:\数据库\jaday\AdayMS\AdayMS_log.ldf\', size=2mb, filegrowth=1mb ) --根据时间筛选 datediff(dd,时间字段,当前时间)>=0 --获取新增数据的标识列 insert语句;select @@IDENTITY --获取数据库表和视图中的所有字段 SELECT 列序号 = A.COLORDER, 列名 = A.NAME, --主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= \'PK \' AND PARENT_OBJ=A.ID AND NAME IN ( --SELECT NAME FROM SYSINDEXES WHERE INDID IN( --SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN \'√ \' ELSE \' \' END, 类型 = B.NAME, --允许空 = CASE WHEN A.ISNULLABLE=1 THEN \'√ \'ELSE \' \' END, 列说明 = ISNULL(G.[VALUE], \' \') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND D.XTYPE= \'U \' AND D.NAME <> \'DTPROPERTIES \' LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0 WHERE (D.name=\'@TableName\' ) ORDER BY A.ID,A.COLORDER --视图 SELECT 列序号 = A.COLORDER, 列名 = A.NAME, --主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= \'PK \' AND PARENT_OBJ=A.ID AND NAME IN ( --SELECT NAME FROM SYSINDEXES WHERE INDID IN( --SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN \'√ \' ELSE \' \' END, 类型 = B.NAME, --允许空 = CASE WHEN A.ISNULLABLE=1 THEN \'√ \'ELSE \' \' END, 列说明 = ISNULL(G.[VALUE], \' \') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND d.xtype=\'V\' AND D.NAME <> \'dtproperties \' LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0 WHERE (D.name=\'@ViewName\' ) GROUP BY A.COLORDER ,A.NAME ,B.NAME ,ISNULL(G.[VALUE], \' \') ,A.ID ORDER BY A.ID,A.COLORDER --触发器 ALTER TRIGGER [TRG_QBItem] ---------项触发器------------------- ON [dbo].[QBItem] FOR delete AS delete from QBOptions where ItemId in (select ItemId from deleted) --计算执行sql语句的时间 --首先 在各个sql 执行语句前加: declare @time datetime set @time=getdate() --然后在sql执行语句后加上: select [语句执行花费时间(毫秒)]=datediff(ms,@time,getdate())
1、仅插入简单有限行数据时:
要插入的表名称(列名称 1、列名称 2,...)
\'列名 1 所需的数据\',\'列名 2 所需的数据\',... union
\'列名 1 所需的数据\',\'列名 2 所需的数据\',... union
\'列名 1 所需的数据\',\'列名 2 所需的数据\',...
...
例如:
进入
(学号、姓名、性别、出生日期、院校代码、成绩)
\'\',\'张三玉\',\'女\',\'1987-10-5\',\'01\',88工会
\'\',\'李四\',\'男\',\'1986-4-18\',\'01\',76联合
\'\',\'王武\',\'男\',\'1986-5-18\',\'03\',94工会
\'\',\'王晓林\',\'女\',\'1985-11-6\',\'03\',37联合
\'\',\'赵流芳\',\'男\',\'1987-12-28\',\'03\',55联合
\'\',\'欧阳晨琪\',\'男\',\'1986-1-1\',\'02\',92
2、当你想从一个表中取出数据插入到新表中时(两个表的表结构不同):使用:
新表名称(列名称1,列名称2,...)
旧表的列名1作为列名1,旧表的列名2作为旧表表名的列名2
3、复制表结构时只需使用:
* 从(原始表)进入(新表)其中 11
4、复制表结构和复制数据时,使用:
* 从(原表)进入(新表)
远程sql插入
// 首先打开远程连接
执行\'显示\',1
去
去
执行\'临时\',1
去
插入语句
* INTO 新表 FROM
(\'\',\'=.;
uid=sa;pwd=;=数据库名称;\')
.数据库名.
--服务器之间建立连接的参数说明:@write a name for the for below; 无需改变; @是远程数据库的IP地址
EXEC @=\'\',@=\'\',@=\'\',@=\'192.168.85.251\'
--登录服务器参数说明:这里的@名称要与上面的@相同; @登录服务器用户名; @登录服务器密码
执行 dbo。 @=N\'\', @=N\'False\', @=NULL, @=N\'sa\', @=N\'123\'
go * from [].[库名].[dbo]. [表名]GO
--关闭服务器连接
EXEC n \'\' , NULL
执行\'\'
-- 删除表字段和约束
@姓名 (50)
@name = b.name from b join a on b.id = a。
其中 a.id = (\'\')
和 a.name =\'\'
exec(\'更改表删除\' + @name)
更改表 dbo.
降低
1)禁止所有表约束的SQL
\'\'+名称+\'\'ype=\'U\'
2)删除所有表数据的SQL
\'\'+=\'U\'
3)恢复所有表约束的SQL
\'\'+名称+\'\'ype=\'U\'
4)删除某个字段的约束
@(100)
--DF 是约束名称前缀
@name=b.,.id=(\'表名\')andb.id=a..name=\'字段名\'andb.\'DF%\'
--去除约束
表名@名称
-- 为字段添加新的默认值和约束
表名@(0)FOR[字段名]
--去除约束
约束名称
-- 修改表中已经存在的列的属性(不包括约束,但可以是主键或增量或唯一)
列名
-- 添加列约束
列名(0) FOR 列名
-- 添加范围限制
(性别(\'M\',\'F\'))