我担心我的术语阻碍了我在互联网上找到我想要的结果。无论如何,我有一个相当复杂的存储过程,我需要传递几个变量。而不是通过存储过程多次输入这些变量,有没有办法在过程的开始定义变量,并在整个过程中引用该变量? 例如
IDNumber = 1075,1050,1025
不必在整个过程中多次使用where子句,
WHERE IDNumber = 1075 AND IDNumber = 1050 AND IDNumber = 1025
我有办法在单个变量中定义这些整数,并通过存储过程传递变量吗?
很抱歉这个问题伴随着任何混乱,因为SQL对我来说是一个新手。感谢您的时间和帮助。
我正在使用SQL Server 2008 R2。
答案 0 :(得分:2)
是的,您希望将表值参数传递给存储过程。请阅读本文:
基本上您将定义类型:
CREATE TYPE myType AS TABLE
(
[myId] int NULL
)
然后创建一个接受该类型的存储过程:
CREATE PROCEDURE myProc
(
@TableVariable myType READONLY
)
AS
BEGIN
...