Табличный параметр для функции в Microsoft SQL Server 2005 - PullRequest
2 голосов
/ 03 апреля 2011

Я хочу передать массив для работы в 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 ]

5 голосов
/ 03 апреля 2011

SQL Server 2005 не имеет табличных параметров. В этой превосходной статье Эрланда Соммарскога обсуждаются различные доступные варианты.

Массивы и списки в SQL Server 2005

1 голос
/ 03 апреля 2011

Еще одна хорошая статья (от Джеффа Модена) о счетных таблицах: http://www.sqlservercentral.com/articles/T-SQL/62867/

Это не должно быть слишком сложно, особенно если вы хотите стать профессионалом:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...