SQL Server 常用代码块

1. UPDATE 语句

不带别名的 UPDATE 语句的语法如下:

update  [, column = ]
[where  ]
 
  
如果 update 语句的 where 条件较复杂,或者要更新的值来源于另外一个表时,可以使用带有别名的 update 语句。

带有别名的 update 语句语法如下:

update A 
set A.Column1 = B.Column1, A.Column2 = B.Column2, A.Column3 = B.Column3 
from A, B 
where A.Column = B.Column

2. 使用 SELECT 语句创建表

SQLSERVER 中的语法是:

select * into 
from 

3. DELETE 语句

SQL Server 不带别名的 DELETE 语句的语法是
delete from 
[ where ] 带有别名的 delete 语句的语法如下:
delete  
from 
where

4. 锁表查询及解锁

select request_session_id as spid, OBJECT_NAME(resource_associated_entity_id) as tableName
from sys.dm_tran_locks
where resource_type='OBJECT'

---或者

select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name  
from sysprocesses  
where spid in  
( select blocked from sysprocesses where blocked <> 0 ) or (blocked <>0)  

--kill spid

5. 查询包含给定文本的存储过程

select o.name, o.id,c.text
from sysobjects o,syscomments c
where o.id=c.id and  c.text like '%Test%'

6. 使用 checksum 函数比较两条数据是否完全相同

返回在表的一行上或在表达式列表上计算的校验和值。CHECKSUM旨在用于构建散列索引。
句法:
CHECKSUM ( * | expression [ ,...n ] )  

参数
指定计算在表格的所有列上。如果任何列是不可比的数据类型,CHECKSUM将返回一个错误。不可比较的数据类型是文本,ntext,图像,XML和游标,还有以任何一种前述类型作为其基本类型的sql_variant。


-- 字段顺序不同也会导致最终返回的值不同
select checksum('a', 'b', 'c')   -- 34400
select checksum('c', 'a', 'b')   -- 39023

7. SYSPROCESSES 查看数据库连接

SELECT at.text,sp.*  FROM[Master].[dbo].[SYSPROCESSES] sp  
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS at  

以上语句作用:

查询客户端进程PID 为3616的程序,与此数据库的所有的连接数,每个连接最后执行的语句以及每个连接的详细信息。


进程PID 可以在任务管理器中进行查看。

连接最后执行的语句是text列的详细信息。

每个连接的详细信息在sp.*中详细说明。




本文参考: SYSPROCESSES 查看连接

你可能感兴趣的:(sqlserver)