sql - 事务处理 SQL : insert into xyz ( select * from abc )

标签 sql sql-server tsql for-loop

我想在 MS SQL 中实现一个在 Oracles PL/SQL 中看起来像这样的结构:

declare
asdf number;
begin
for r in (select * from  xyz) loop
   insert into abc (column1, column2, column3) 
   values (r.asdf, r.vcxvc, r.dffgdfg) returning id into asdf;

    update xyz set column10 = asdf where ID = r.ID;
end loop;
end;

任何关于如何实现这一点的想法都会有所帮助。

提前致谢

最佳答案

这似乎只是一张表的副本,对吧?

嗯:

SELECT column1, column2, column3 INTO abc FROM xyz

我想你也可以这样

INSERT INTO abc SELECT column1, column2, column3 FROM xyz

但在第二种情况下,您需要先创建表,第一种情况下也会创建 TABLE

干杯 约翰内斯

关于sql - 事务处理 SQL : insert into xyz ( select * from abc ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909361/

相关文章:

sql-server-2008 - 无法将值 NULL 插入到列 '' 中,表列不允许空值。 INSERT 失败。无法执行以下 SQL block

sql-server - 如何在sql中获得小数点后2位?

sql - sqlQuery 的 RODBC 错误处理

sql - 查询根据其他字段用最大值填充Null字段

SQL Server - UPDATE 语句中的 JOIN

SQL Server日期列格式

sql - 线程安全的sql事务,如何在事务期间锁定特定行?

sql-server - 保存记录时出现 MS Access ODBC 超时错误

sql - 如何删除SQL表中的所有重复记录?

sql - 使用 PostgreSQL ltree 对节点进行排序