我创建了以下存储过程并且运行完美
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC sp_infoschemacolumns
@COLUMN varchar(255),
@DATA VARCHAR(255)
AS
DECLARE @SQLString as varchar(255);
SET @SQLSTRING = '
SELECT *
FROM information_schema.columns
WHERE @COLUMN = @DATA'
EXEC(@sqlstring);
RETURN;
GO
这是我的exec命令语句
DECLARE @COLUMN VARCHAR(255)
DECLARE @DATA VARCHAR(255);
EXEC [dbo].[sp_infoschemacolumns] @COLUMN = "COLUMN_NAME", @DATA = 'LASTNAME';
当我运行它时,它告诉我声明变量
你能帮我解释一下我的执行声明吗?
答案 0 :(得分:0)
存储过程中的SQL String中的变量是未知的,因为它们位于字符串中。
有关详细说明,请参阅以下文章。
http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/