我想将一个数组传递给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))
)
解决方案是什么?
答案 0 :(得分:5)
SQL Server 2005没有表值参数。 Erland Sommarskog撰写的这篇优秀文章讨论了各种选择。
答案 1 :(得分:1)
关于理货表的另一篇好文章(来自Jeff Moden):http://www.sqlservercentral.com/articles/T-SQL/62867/
这不应该太难,特别是如果你想成为一名专业人士:)