Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Передача параметра для IN в хранимую процедуру  [new]
Sedge
Member

Откуда: Somewhere-In-The-Net
Сообщений: 18
Я создаю хранимую процедуру:

alter proc dbo.spEvents
@IdList nvarchar(256)
as
select * from tblEvent where [id] in (@IdList)

Параметр @IdList = "1, 2, 4 ,8, 16"

При выполнении возвращается ошибка: Error converting data type nvarchar to bigint. Можно ли как-нибудь передать эту строку так, чтобы запрос обработался нормально?
17 июн 04, 15:34    [748366]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра для IN в хранимую процедуру  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Массивы и списки на SQL Server
17 июн 04, 15:37    [748379]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра для IN в хранимую процедуру  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Сделай таблицу-переменную с полем ID, запихай туда список по одному потом join
select * 
from tblEvent E
join @table T on E.ID = T.ID

-- Tygra's --
17 июн 04, 15:38    [748388]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра для IN в хранимую процедуру  [new]
Elaiz
Member

Откуда: от туда
Сообщений: 8
Если очень надо именно так то

select * from tblEvent where @IdList Like '%'+ Convert(Varchar(2),[id]) +'%'

а вообще это криво, но работает
17 июн 04, 15:48    [748428]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра для IN в хранимую процедуру  [new]
Elaiz
Member

Откуда: от туда
Сообщений: 8
Только Varchar а не Varchar(2)
17 июн 04, 15:50    [748438]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра для IN в хранимую процедуру  [new]
Выхухоль
Member

Откуда:
Сообщений: 19
alter proc spEvents
@IdList nvarchar(256)
as
exec ('select * from tblEvent where [id] in ('+ @IdList+')')
go


spEvents @IdList='1,2,3'
17 июн 04, 16:05    [748510]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить