2016-07-22 36 views
4

我知道它可以创建一个存储过程,并通过做传递一个表作为参数如下:通表的参数,而无需创建TYPE

CREATE TYPE MyTableType AS TABLE (Id UNIQUEIDENTIFIER) 

CREATE PROCEDURE MyProcedure 
    @ids MyTableType READONLY 
AS 
... 

我不希望创建与上述A型,因为我被告知不要在数据库中创建类型依赖关系。所以我想做以下事情:

CREATE PROCEDURE MyProcedure 
    @ids TABLE (Id UNIQUEIDENTIFIER) 
AS 

但由于某种原因,我得到错误的亮点。我在语法上做错了什么?或者这是不可能做到的?

+2

这不是直接的答案,但是这篇文章将通过很多方式将列表传递给存储过程。 https://stackoverflow.com/questions/43249/t-sql-stored-procedure-that-accepts-multiple-id-values –

+0

谢谢,@WilliamXifaras –

回答

3

我不认为有可能像你试图做的那样声明一个内联表类型。表值参数this article中的第一行表示:

表值参数是使用用户定义的表类型声明的。

+0

这听起来很有希望,但链接被打破。你能编辑它吗?谢谢! –

+0

已修复,@MariFaleiros。对于那个很抱歉! –

+0

不用担心,谢谢! –