存储过程中的动态 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
表我用过
输出