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

Откуда: Израиль. Хадера.
Сообщений: 198
Вот такая процедура (в Microsoft SqlServer) не работает:
ALTER PROCEDURE dbo.spRusByVarString
            @VarStringWords NVARCHAR(1000)
AS
		
	SELECT * FROM vwWords WHERE Rus In (SELECT @VarStringWords)
	
	RETURN


Как написать работающую процедуру, при условии, что @VarStringWords это стринг переменной длины. Например такой 'мама', 'папа', 'сестра'

Спасибо!
Евгений Боуден
7 окт 11, 16:54    [11403883]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
SELECT * FROM vwWords WHERE CHARINDEX(','+Rus+',', ','+@VarStringWords+',', 0) > 0
7 окт 11, 16:56    [11403903]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
evgenybe
Вот такая процедура (в Microsoft SqlServer) не работает
И слава богу. Незачем нам дырищи в безопастности и тормоза by design.

И пишете имена схем (dbo.vwWords). Всегда!

А ещё есть Table valued parameters.
7 окт 11, 17:25    [11404185]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
Konst_One
SELECT * FROM vwWords WHERE CHARINDEX(','+Rus+',', ','+@VarStringWords+',', 0) > 0

Но в этом случае везвращает единственную запись соответствующую первому до запятой стрингу. Например, я задаю параметр мама, папа - возвращает только строку "мама".
7 окт 11, 17:50    [11404353]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
evgenybe, ну так пробелы же. надо либо в одном месте убрать, либо в другом - добавить
7 окт 11, 17:57    [11404393]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
Shakill,

Урррааа! Заработала!!!!
7 окт 11, 18:13    [11404468]     Ответить | Цитировать Сообщить модератору
 Re: Как создать процедуру с переменным параметром, используемом в IN  [new]
Alexander2
Member

Откуда: Calgary
Сообщений: 1167
Konst_One,

Решение супер!! спасибо за идею!
18 окт 11, 01:49    [11456293]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить