经典SQL语句大全(非增删改查)

推荐大家使用一个插件SQL Prompt,智能提示很好
  1. SQL Server数据库备份
EXEC sp_addumpdevice 'disk', 'TestBackUp', 'F:/1.bat'
BACKUP DATABASE DataBase_Name TO TestBackUp
  1. 查询数据库在进程池的连接数
SELECT *
FROM master.dbo.sysprocesses
WHERE dbid IN ( SELECT dbid
FROM master.dbo.sysdatabases
WHERE name = 'DataBase_Name' )
  1. 查询数据库被锁表和解除数据库被锁表
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 = 100
DECLARE @KillProcess VARCHAR(100)
SET @KillProcess = 'Kill ' + CAST(@spid AS VARCHAR)
EXEC(@KillProcess)
  1. 恢复数据库约束
ALTER TABLE TABLE_Name
WITH CHECK CHECK CONSTRAINT CK_Employee_BirthDate (约束名称)
  1. 去除数据库约束
ALTER TABLE TABLE_Name
NOCHECK CONSTRAINT CK_Employee_BirthDate (约束名称)
  1. 恢复数据库全部约束
EXEC sp_MSforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
  1. 去除数据库全部约束
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
  1. 内连接
内连接(Inner Join)的结果是左右两表同时符合条件的组合
注意与笛卡尔积的交叉连接的区别:
内连接:
SELECT *
FROM table1
INNER JOIN table2 ON table1.条件列名 = table2.条件列名
笛卡尔积的交叉连接:
SELECT table1.* ,
table2.*
FROM table1 ,
table2
WHERE table1.条件列名 = table2.条件列名
笛卡尔积需要先生成行数乘积的数据表再进行筛选,因此内连接效率高于笛卡尔积的交叉连接
  1. 外连接
左连接(Left Join)的结果是左表的所有行,如果左表中的某行在右表没有匹配,则在关联结果中右表的相关列为空(NULL)
右连接与之相反


后续补充中……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值