如何在存储过程中动态传递值

时间:2011-08-18 16:58:54

标签: tsql stored-procedures

如何在存储过程中的运行时传递参数值。

对于ex:当我尝试传递开始日期和结束日期时,值没有被传递,有没有办法传递像'?'这样的值在T-SQL中。

exec SP '01-01-2011','01-30-2011'

1 个答案:

答案 0 :(得分:0)

那里有很多资源。只是使用谷歌我发现了几篇文章,其中包括一个关于SO的问题。

Can a stored procedure have dynamic parameters to be used in an "IN" clause?

T-SQL Stored Procedures Using Parameters

如果您发布了一些存储过程,那么它将更好地了解您的代码。

以下是MSDN website

的示例
USE AdventureWorks2008R2;
GO
CREATE PROCEDURE HumanResources.uspGetEmployees 
    @LastName nvarchar(50), 
    @FirstName nvarchar(50) 
AS 

    SET NOCOUNT ON;
    SELECT FirstName, LastName,Department
    FROM HumanResources.vEmployeeDepartmentHistory
    WHERE FirstName = @FirstName AND LastName = @LastName;
GO

然后执行

EXECUTE HumanResources.uspGetEmployees N'Ackerman', N'Pilar';
-- Or
EXEC HumanResources.uspGetEmployees @LastName = N'Ackerman', @FirstName = N'Pilar';
GO
-- Or
EXECUTE HumanResources.uspGetEmployees @FirstName = N'Pilar', @LastName = N'Ackerman';
GO
-- Or, if this procedure is the first statement within a batch:
HumanResources.uspGetEmployees N'Ackerman', N'Pilar';