存储过程变量

时间:2013-12-18 19:54:20

标签: sql sql-server stored-procedures sql-server-2008-r2

我担心我的术语阻碍了我在互联网上找到我想要的结果。无论如何,我有一个相当复杂的存储过程,我需要传递几个变量。而不是通过存储过程多次输入这些变量,有没有办法在过程的开始定义变量,并在整个过程中引用该变量? 例如

  

IDNumber = 1075,1050,1025

不必在整个过程中多次使用where子句,

  

WHERE IDNumber = 1075 AND IDNumber = 1050 AND IDNumber = 1025

我有办法在单个变量中定义这些整数,并通过存储过程传递变量吗?

很抱歉这个问题伴随着任何混乱,因为SQL对我来说是一个新手。感谢您的时间和帮助。

我正在使用SQL Server 2008 R2。

1 个答案:

答案 0 :(得分:2)

是的,您希望将表值参数传递给存储过程。请阅读本文:

http://www.techrepublic.com/blog/the-enterprise-cloud/passing-table-valued-parameters-in-sql-server-2008/

基本上您将定义类型:

CREATE TYPE myType AS TABLE
(                     
       [myId] int NULL
)      

然后创建一个接受该类型的存储过程:

CREATE PROCEDURE myProc
(
      @TableVariable myType READONLY
)
AS
BEGIN
...