SQL Server 常用程式碼塊
阿新 • • 發佈:2019-01-27
1. UPDATE 語句
不帶別名的 UPDATE 語句的語法如下:
update <table name》
set column = <column> [, column = <column>]
[where <restrictive condition> ]
如果 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 <dst table name>
from <src table name>
3. DELETE 語句
SQL Server 不帶別名的 DELETE 語句的語法是delete from <table name>
[ where <restrictive condition> ]
帶有別名的 delete 語句的語法如下:
delete <alias> from <table name> <alias> where <restrictive condition>
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.*中詳細說明。
本文參考: