Здравствуйте, Grog13, Вы писали:
G>Конкретные трудности у меня с переводом строки вида "30003, 344034, 234234"
G>в 3 отдельных числа, что бы сделать 3 раза INSERT.
G>Могу ли я как-нибудь написать логику триггера на C#?
Во-первых, кажется вот здесь
Массивы и списки в sql такой вопрос среди прочих и рассматривается.
Во-вторых, можно написать незамысловатый код на tsql для парсинга строки. Вот мой случай,правда некогда переименовывать переменные — смысл в том что в процедуру приходит строка @требованияКМашине, где отдельные коды перечислены через ';'. Можете видоизменить для вашего случая.
declare @кодТребования int;
declare @позицияТЗП int
while(len(@требованияКМашине)>0)
begin
set @позицияТЗП = charindex(';',@требованияКМашине);
if (@позицияТЗП = 0)
set @позицияТЗП = len(@требованияКМашине)+1
if(isnumeric(substring(@требованияКМашине, 1, @позицияТЗП-1))=1)
begin
set @кодТребования = substring(@требованияКМашине, 1, @позицияТЗП-1)
exec Вставить_заказы_требования_рабочая @кодЗаказа = @кодЗаказа, @кодТребования = @кодТребования
end
else
set @кодТребования = null;
if @позицияТЗП<len(@требованияКМашине)
set @требованияКМашине = substring(@требованияКМашине, @позицияТЗП+1,len(@требованияКМашине)-@позицияТЗП);
else
break;
end
Ну, а в третьих — на C# собственно парсинг строки делается вызовом одного метода String, но геморроя с вызовом sql потом из процедуры будет больше, поэтому я бы выбрал вариант на TSQL. И, кажется вы упоминали что сервер у вас 2000 — значит юзать CLR вы не можете