Sql server 帮助理解SQL存储过程参数
我是SQL新手,现在正在处理存储过程。 我正在看另一个开发人员的代码,我看到了以下声明:Sql server 帮助理解SQL存储过程参数,sql-server,tsql,sql-server-2008,stored-procedures,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 w
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中实现上述步骤
任何帮助都将不胜感激
ty_NumberList
是一种
你会像这样使用它
DECLARE @Nums AS ty_NumberList;
INSERT INTO @Nums VALUES (1);
EXEC YourProc @Nums;
该代码使用的是
表值参数
s,请在联机丛书中阅读:
读一下这个
你的电话号码意味着你必须告诉我们
因为它是用户定义的数据类型
在声明存储过程时
参数
我们不需要使用declare
创建过程样本@name vanchar(20),
@num varchar(20)开始
选择
结束
那代码让它成为一个表值参数呢?在没有看到CREATE TYPE语句的情况下,它不是任何用户定义的类型吗?
READONLY
对于TVP是必需的(不确定它是否对其他数据类型有效,但在任何情况下,它的存在和类型的名称都会向我指示TVP)@AL W:查看CREATE类型后,我可以确认它确实是TVP。“谢谢你关于只读的留言,@Martin。”。