Sybase运行从先前查询生成的SQL

时间:2012-09-03 08:39:36

标签: sql sybase

我正在使用Sybase根据以前的内容(使用旧的ORM)将一些新行插入到表中,并且想知道是否有一种方法可以执行生成的SQL而无需复制和粘贴?

我使用

之类的东西
SELECT 'INSERT INTO Mapper VALUES (''' + ClassName + ''', ''NewObject'', ''NewId'', '''+convert(varchar(10), max(Sequence)+1)+''')'
FROM Mapper WHERE ClassName IN ('James', 'Steve') GROUP BY ClassName 

对于像

这样的表格
ClassName | ObjectName | ID | Sequence

输出如下结果:

 INSERT INTO Mapper VALUES ('James', 'NewObject', 'NewId', '38')           
 INSERT INTO Mapper VALUES ('Steve', 'NewObject', 'NewId', '24') 

现在是否可以运行这个经过处理的SQL而无需在Sybase中使用SQL(使用Aqua Data Studio)进行复制和粘贴?

目前我只是将其复制并粘贴回同一窗口

谢谢,

-

请注意,如果这有任何不同,那么它将是2000多行

P.S。我刚刚注意到我用了很多这个词,抱歉^ _ ^

1 个答案:

答案 0 :(得分:0)

您可以在语句中使用CURSOR,使用EXEC命令执行每行中生成的SQL。

我认为这是一个一次性的任务,而不是一个持续的过程,这就是为什么你不使用INSERT table SELECT....

的原因