帮助理解SQL存储过程参数

时间:2011-05-10 16:05:20

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

我是SQL新手,现在正在使用存储过程。 我正在看另一个开发人员的代码,我看到了这个陈述:

ALTER PROCEDURE [deleteRecords_UNICODE]
@RecordIDs ty_NumberList READONLY

问题1:“ty_NumberList”是什么意思?

问题2:我正在创建一个需要使用上述参数的存储过程。 当我创建“DECLARE @RecordNum int”时,我显然遇到了

的错误
Operand type clash: int is incompatible with ty_NumberList

我猜我必须解决这个问题:
a)创建“ty_NumberList”类型的变量
b)然后使用我通常的DECLARE @RecordNum int
c)然后将@RecordNum的值传递给ty_NumberList

问题3:我如何在SQL中实现上述步骤?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:4)

ty_NumberListtable valued parameter的类型。

你会像

一样使用它
DECLARE @Nums AS ty_NumberList;

INSERT INTO @Nums VALUES (1);

EXEC YourProc @Nums;

答案 1 :(得分:1)

该代码正在使用Table-Valued Parameter,请在联机丛书中阅读:http://msdn.microsoft.com/en-us/library/bb510489.aspx

答案 2 :(得分:0)

  

阅读本文

     

ty_number意味着你必须告诉我们   因为它是用户定义的数据类型

     

同时声明存储过程   参数

     

我们不需要使用declare

     

创建proc示例@name vanchar(20),   @num varchar(20)开始

     

选择........ .......

     

结束