Member 14800672 Ответов: 1

Как передать разделение строк в хранимую процедуру?


Допустим у меня есть такая процедура

CreatePROCEDURE [dbo].[usp_InsertValue]
	 @value nvarchar(5)
         ,@value1 int



и у меня уже есть переменная, которая имеет значения, разделенные запятой, называемая @value

Что я уже пробовал:

exec usp_InsertValue  value from STRING_SPLIT(@value, ','),@value1


но я получаю неправильный синтаксис рядом с

1 Ответов

Рейтинг:
0

OriginalGriff

В принципе, не используйте разделенные запятыми данные где - либо рядом с SQL-это всегда будет Пита в какой-то момент, даже если это возможно. Например: Использование разделенных запятыми строк параметров значений в предложениях SQL IN[^] и Преобразование данных, разделенных запятыми в столбце, в строки для выбора[^]
Во всяком случае, вы можете ввести уязвимость SQL-инъекции, которая может поставить под угрозу вашу БД.

И этот синтаксис, который вы показываете, вообще не имеет смысла - вот почему SQL отвергает его.
Я предполагаю, что вы пытаетесь выполнить SP один раз для каждой строки в ваших CSV - данных - если это так, вам понадобится цикл с SP EXEC внутри него, - но я настоятельно рекомендую вам найти другой способ достижения того, что заставляет вас думать, что это хорошая идея!