【问题标题】:Sybase Run SQL Generated From Previous QuerySybase 运行从先前查询生成的 SQL
【发布时间】: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 多行

附:我刚刚注意到我经常使用这个词,对不起^_^

【问题讨论】:

    标签: sql sybase


    【解决方案1】:

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

    我假设这是一个一次性的任务,而不是一个持续的过程,你不使用INSERT table SELECT....是有原因的

    【讨论】:

    • 是的,你说得对,这是一项一次性的批量任务,虽然我忘记了 INSERT SELECT,但我还是会尝试使用 CURSOR,因为我之前没有使用过它
    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多