![](/img/trans.png)
[英]How to copy records from table and insert into same table using stored procedure SQL Server
[英]How to insert all records of a table in another table using a stored procedure
我有一個大約有 13066 條記錄的表,我想在其中添加另一個表中的所有其他記錄(大約有 1346 條記錄)。 有一個執行插入的存儲過程,我想將它用於要插入的所有記錄。 有人可以幫忙嗎?
除非您沒有提供所有信息,否則就是這么簡單,例如“有重復項”或“僅當不存在時”
CREATE PROC DoSomething
AS
SET NOCOUNT ON
INSERT table1 (col1, col2, etc)
SELECT col1, col2, etc FROM table2
GO
編輯:
有什么東西不見了。
OP希望通過table2循環能夠調用現有的存儲過程
要正確地做到這一點,你會使用
INSERT table1 (col1, col2, etc)
SELECT col1, col2, etc FROM table2 t2
WHERE NOT EXISTS (SELECT * FROM table1 t1
WHERE t1.key = t2.key and <some conditions>)
我可能誤解了您的問題,但您似乎想要執行一個存儲過程並將存儲過程的結果插入到您的主表中。
為此,您可以執行以下操作:
INSERT INTO dbo.YourMainTable
EXEC dbo.YourStoredProcedureName
編輯:
我能想到的唯一方法是使用 cursor。
DECLARE @PrimaryKeyFieldInTable2 int
DECLARE spCur CURSOR LOCAL FOR
SELECT PrimaryKetCol From Table2
OPEN spCur
FETCH NEXT FROM spCur INTO @PrimaryKeyFieldInTable2
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO dbo.Table1
EXEC dbo.YourStoredProceudre @PrimaryKeyFieldInTable2
FETCH NEXT FROM spCur INTO @PrimaryKeyFieldInTable2
END
CLOSE spCur
DEALLOCATE spCur
這假設您的存儲過程從表 2 的每一行接受一個參數 select。
這不是 SQL 服務器的最佳用途,但如果你真的必須這樣做,那么我想不出任何其他方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.