儲存過程中的動態 SQL
動態 SQL 使我們能夠在執行時生成和執行 SQL 語句。當我們的 SQL 語句包含可能在不同編譯時間更改的識別符號時,需要動態 SQL。
簡單的動態 SQL 示例:
CREATE PROC sp_dynamicSQL
@table_name NVARCHAR(20),
@col_name NVARCHAR(20),
@col_value NVARCHAR(20)
AS
BEGIN
DECLARE @Query NVARCHAR(max)
SET @Query = 'SELECT * FROM ' + @table_name
SET @Query = @Query + ' WHERE ' + @col_name + ' = ' + ''''+@col_value+''''
EXEC (@Query)
END
在上面的 sql 查詢中,我們可以看到我們可以通過在執行時定義 @table_name, @col_name, and @col_value
中的值來使用上面的查詢。查詢在執行時生成並執行。這是一種技術,我們可以在變數中建立整個指令碼作為字串並執行它。我們可以使用動態 SQL 和連線概念建立更復雜的查詢。當你想要建立可在多種條件下使用的指令碼時,此概念非常強大。
執行儲存過程
DECLARE @table_name NVARCHAR(20) = 'ITCompanyInNepal',
@col_name NVARCHAR(20) = 'Headquarter',
@col_value NVARCHAR(20) = 'USA'
EXEC sp_dynamicSQL @table_name,
@col_name,
@col_value
表我用過
輸出