表值Microsoft SQL Server 2005中的函数参数

时间:2011-04-03 12:10:03

标签: sql-server-2005

我想将一个数组传递给Microsoft SQL Server 2005中的函数, 但是以下代码不起作用:

create function TarafhaieGharardad
(
@ShomareGharardad bigint,
@VahedeVagozarKonande int,
@NoeKhedmat int,
@TarafhaieGharardad table(id int)
)
returns table
as 
return
(
    select * from Gharardad
where 
(
(@ShomareGharardad=-1) or (PK#ShomareGharardad=@ShomareGharardad)) and
(@VahedeVagozarKonande=-1) or (FK#VahedeVagozarKonande=@VahedeVagozarKonande)) and
(@NodeKhedmat=-1) or (FK#NodeKhedmat=@NoeKhedmat)) and
(count(@TarafeGharardad)=0) or (FK#TarafeGharardad in(select id from @TarafhaieGharardad))
)

解决方案是什么?

2 个答案:

答案 0 :(得分:5)

SQL Server 2005没有表值参数。 Erland Sommarskog撰写的这篇优秀文章讨论了各种选择。

Arrays and Lists in SQL Server 2005

答案 1 :(得分:1)

关于理货表的另一篇好文章(来自Jeff Moden):http://www.sqlservercentral.com/articles/T-SQL/62867/

这不应该太难,特别是如果你想成为一名专业人士:)