這篇文章將向您展示一些關於 MS SQL Server 的腳本技巧。
1.等待
WAITFOR 語句使用兩個子句之一來指定:
(1) DELAY 關鍵字後面接著完成 WAITFOR 語句之前要經過的時間量。完成 WAITFOR 語句之前的等待時間最長可達 24 小時。例如,
-- 等待十秒再執行 select 語句
等待延遲'00:00:10'
Select EmployeeID From Northwind.dbo.Employees
(2) TIME 關鍵字後面接著要執行的時間,該時間指定 WAITFOR 語句的完成。
例如,
-- 等到晚上 10:00 對 pubs 資料庫執行檢查,以確保所有頁面都正確分配和使用。
使用酒吧
開始
等待時間“22:00”
DBCC CHECKALLOC
結束
2.啟用 SQL 偵錯
-- SQL Server 使用 SP_SDIDEBUG 預存程序來偵錯 Transact-SQL 語句
使用大師
將 Execute on SP_SDIDEBUG 授予使用者名稱
3. 執行動態建置的字串
(1)執行語句
對於 EXECUTE 語句,所有參數值都必須轉換為字元或 Unicode,並成為 Transact-SQL 字串的一部分。例如,
聲明@IntVariable INT
聲明 @SQLString NVARCHAR(500)
/* 使用一個參數值建構並執行一個字串。 */
設定@IntVariable = 35
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
執行(@SQLString)
/* 使用第二個參數值建構並執行字串。 */
設定@IntVariable = 201
SET @SQLString = N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = ' +
CAST(@IntVariable AS NVARCHAR(10))
EXEC(@SQLString)
(2) SP_ExecuteSQL
建議使用 sp_executesql 而不是使用 EXECUTE 語句來執行字串。對參數替換的支援不僅使 sp_executesql 比 EXECUTE 更通用,而且還使 sp_executesql 更有效率,因為它產生的執行計劃更有可能被 SQL Server 重複使用。
sp_executesql 支援獨立於 Transact-SQL 字串設定參數值:
DECLARE @IntVariable INT
聲明 @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
/* 建構 SQL 字串一次。 */
設定@SQLString =
N'SELECT * FROM pubs.dbo.employee WHERE job_lvl = @level'
/* 指定一次參數格式。 */
SET @ParmDefinition = N'@level tinyint'
/* 執行第一個參數值的字串。 */
設定@IntVariable = 35
執行 sp_executesql @SQLString、@ParmDefinition、
@level = @IntVariable
/* 使用第二個參數值執行相同的字串。 */
設定@IntVariable = 32
執行 sp_executesql @SQLString、@ParmDefinition、
@level = @IntVariable
4. SP_HelpText
列印規則、預設值或未加密的預存程序、使用者定義函數、觸發器或視圖的文字。
-- 此範例顯示employee_insupd觸發器的文本,該觸發器位於pubs資料庫中
使用酒吧
執行 sp_helptext 'employee_insupd'