[英]Insert values into a table using stored procedure without parameters
我想編寫一個存儲過程,通過連接兩個表在一個表中插入數據。 以下是我的嘗試,但出現錯誤。
CREATE PROCEDURE [dbo].[stored_proc1]
AS
BEGIN
INSERT INTO [dbo].[IN_TABLE]
SELECT
l.col1, l.col2, l.col3, l.col4,
r.col1, r.col2
FROM
db2.dbo.table1 AS l
LEFT JOIN
dbo.[table2] AS r ON l.col1 = r.col2
WHERE
l.col4 >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), -7);
DELETE FROM dbo.[IN_TABLE]
WHERE col4 < DATEADD(dd, DATEDIFF(dd, 0, GETDATE()),-7);
END
GO
這是我得到的錯誤:
消息213,級別16,狀態1,過程store_proc1,第18行[批處理開始第9行]
列名或提供的值數與表定義不匹配。
我在搜索任務解決方案時遇到的所有示例都使用參數,並通過將它們設置為特定值來插入它們,這對我沒有幫助,因為我想從SELECT
語句中插入。
非常感謝您的幫助。 先感謝您。
您需要指定要插入的列。 不知道您在In_Table中的字段列表無法發布確切的代碼,但這是您需要的
INSERT INTO [dbo].[IN_TABLE] (
col1, col2, col3, etc (this lists needs to match your list of fields in your select
)
SELECT l.col1
,l.col2
,l.col3
,l.col4
,r.col1
,r.col2
FROM db2.dbo.table1 AS l
LEFT JOIN dbo.[table2] AS r
ON l.col1= r.col2
WHERE l.col4 >= DATEADD(dd, DATEDIFF(dd, 0, GETDATE()),-7);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.