使用参数执行存储过程

时间:2015-01-09 13:10:44

标签: sql-server stored-procedures

我创建了以下存储过程并且运行完美

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';

当我运行它时,它告诉我声明变量

你能帮我解释一下我的执行声明吗?

1 个答案:

答案 0 :(得分:0)

存储过程中的SQL String中的变量是未知的,因为它们位于字符串中。

有关详细说明,请参阅以下文章。

http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/