Sybase 运行从先前查询生成的 SQL
Posted
技术标签:
【中文标题】Sybase 运行从先前查询生成的 SQL【英文标题】:Sybase Run SQL Generated From Previous Query 【发布时间】:2012-09-03 08:39:35 【问题描述】:我正在使用 Sybase 生成 SQL 推荐,以根据以前的内容将一些新行插入到表中(使用旧的 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 多行
附:我刚刚注意到我经常使用这个词,对不起^_^
【问题讨论】:
【参考方案1】:您可以在语句中使用CURSOR
,并使用EXEC
命令执行每行生成的SQL。
我假设这是一个一次性的任务,而不是一个持续的过程,你不使用INSERT table SELECT....
是有原因的
【讨论】:
是的,你说得对,这是一项一次性的批量任务,虽然我忘记了 INSERT SELECT,但我还是会尝试使用 CURSOR,因为我之前没有使用过它以上是关于Sybase 运行从先前查询生成的 SQL的主要内容,如果未能解决你的问题,请参考以下文章
sybase数据库 如何使用sql语句查询,数据库容量大小和数据库使用量大小