sql-server - SQL Server 存储过程 - SELECT 语句然后在 INSERT 语句中使用结果

标签 sql-server stored-procedures

我正在编写一个存储过程,它将从一个表中获取结果,然后将它们复制到另一个表中。这不是完全匹配,我正在更改 1 列并忽略另一列。有 5 列,如果相关,平均有 3-5 个结果。

我基本上需要:

SELECT * FROM sometable WHERE somecolumn = 1

然后对于每一个结果

INSERT INTO anothertable (a,b,c) VALUES (@a, @b, @c)

在存储过程中执行此操作的最佳方法是什么?

最佳答案

您可以在一条语句中执行此操作:

INSERT AnotherTable (a, b, c)
SELECT a, b, c
FROM SomeTable
WHERE SomeColumn = 1

尽可能避免在循环/游标/RBAR(逐行逐行)中做事,而是尝试像上面那样以基于 SET 的方法进行思考。

关于sql-server - SQL Server 存储过程 - SELECT 语句然后在 INSERT 语句中使用结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617078/

相关文章:

c# - 处理存储过程

sql-server - 在 CentOS 246MB RAM、Apache 和 PHP 上存储数据的最佳性能 SQL 数据库是什么?

sql-server - 安装 SQL Server Management Studio Express 后出现 "Cannot open user default database. Login failed."

mysql - 存储过程将 int 转换为十进制

javascript - Node.js 在循环中多次调用 MySQL 存储过程

sql-server - LINQ 和存储过程之间的性能差异

c# - 具有相同表的多个模式的 EF6 中的 Multi-Tenancy

php - SQL命令从数据ID在两个表中的表中删除

SQL Server 按 X 小时/天/周分组

stored-procedures - 编译存储过程挂起 Oracle SQL Developer