以下是要在書局裡,找出一本書類別是科學的
USE BookStore
GO
-- 宣告變數
DECLARE @SQLCommand nvarchar(200)
DECLARE @columnList nvarchar(50)
DECLARE @color varchar(10)
SET @columnList = N'BookID書本編號, Type 類型'
SET @type = '''Science'''
-- 動態組出 T-SQL
SET @SQLCommand = 'SELECT ' + @columnList + ' FROM Production.Book
WHERE Type = ' + @type
-- 執行動態組出的 T-SQL
EXECUTE (@SQLCommand)
@type這變數值左右各用了 3 個單引號(')來把 Science 包起來,第 1 個單引號代表變數值的型別是 nvarchar 型別,第 2 與第 3 個單引號最後會被視為只有一個單引號。EXECUTE 陳述式之後,用一對刮號把要執行的 T-SQL 給包起來。
這樣是簡短的命令,但是效果相同:
EXEC (@SQLCommand)
也可以增加查詢的條件,例如查詢ID編號
USE AdventureWorks
GO
-- 宣告變數
DECLARE @SQLCommand nvarchar(200)
DECLARE @columnList nvarchar(50)
DECLARE @color varchar(10)
DECLARE @pID varchar(5)
-- 定義變數
SET @columnList = N'BookID 書本編號, Type 類型'
SET @type = '''Science'''
SET @pID = '002'
-- 動態組出 T-SQL
SET @SQLCommand = 'SELECT ' + @columnList + ' FROM Production.Book
WHERE Type = ' + @color + '
AND BookID < ' + @pID
-- 執行動態組出的 T-SQL
EXEC (@SQLCommand)
要注意變數型態的對應,否則執行時會出現型能不符的錯誤。
-雲遊山水為知已逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言