#c #sql #database #tsql #sybase
#c #sql #База данных #tsql #sybase
Вопрос:
Я пытаюсь выполнить необработанную строку SQL, используя свой пользовательский класс подключения..
(Метод Execute просто выполняет данную инструкцию sql ..)
MyConnection.Execute(
"DECLARE @i int "
"SET @i = 0 "
"WHILE (@i < 10000) BEGIN "
"INSERT INTO my_table VALUES (1, 2, 3) "
"SET @i = @i 1");
Выполнение этого оператора выдает синтаксическую ошибку:
Code = 80040e14
Code meaning = I
Source = ASEOLEDB
Description = [42000]
[ASEOLEDB] Incorrect syntax near '1'.
Как вы можете видеть, я подключаюсь к Sybase Adaptive Server Enterprise, который принимает T-SQL..
Я предполагаю, что что-то не так с моей строкой sql,, или с тем, как она отформатирована?
Спасибо
PS Я уверен, что в моем методе «Выполнить» нет ничего плохого, поскольку оператор удаления одной строки работает нормально..
Ответ №1:
я нашел этот пример в Интернете
в вашем коде нет конца и нет ; но ‘;’, я думаю, вам не нужно.
DECLARE @MyCounter int;
SET @MyCounter = 0;
WHILE (@MyCounter < 26)
BEGIN;
INSERT INTO TestTable VALUES (@MyCounter, CHAR( ( @MyCounter ASCII('a') ) ) );
SET @MyCounter = @MyCounter 1;
END;
BR
Алекс