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

Wis*_*Pro 2 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))
)
Run Code Online (Sandbox Code Playgroud)

解决办法是什么?

Mar*_*ith 5

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

SQL Server 2005中的数组和列表