我尝试使用自定义Connection类执行原始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我确定我的&#34;执行&#34;没有错。方法,作为单行删除语句工作正常..
答案 0 :(得分:1)
我在网络上找到了这个例子
您的代码没有END而没有;但是',',我认为,你不需要。
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 亚历