簡體   English   中英

從 MS Access 更新查詢在 SQL 服務器中創建存儲過程

[英]Create stored procedure in SQL Server from a MS Access update query

我正在嘗試創建我的第一個存儲過程。

我確實將以下 SQL 從 MS Access 復制到了 SQL 服務器存儲過程,並且出現“LEFT JOIN”語法錯誤。 有什么問題?

UPDATE dbo.AssemblyInstanceMassProperties
LEFT JOIN dbo.BOM ON dbo.AssemblyInstanceMassProperties.ID = dbo.BOM.AssemblyInstanceID
SET dbo.AssemblyInstanceMassProperties.NumberofSubInstance = 1
WHERE (((dbo.BOM.AssemblyInstanceID) IS NULL));

在 TSQL 中,對於涉及多個表的更新,您應該始終首先編寫 SELECT 語句並對其進行更新。 並且始終使用表別名。 並且總是用;終止每個語句 .

因此,首先編寫一個返回要更新的行的查詢,明確列出 UPDATE 中涉及的所有列:

SELECT p.NumberofSubInstance, *
FROM dbo.AssemblyInstanceMassProperties p
LEFT JOIN dbo.BOM b
ON p.ID = b.AssemblyInstanceID
 WHERE b.AssemblyInstanceID Is Null;

然后當你確信你有正確的行時,把它變成這樣的更新:

with q as
(
    SELECT p.NumberofSubInstance
    FROM dbo.AssemblyInstanceMassProperties p
    LEFT JOIN dbo.BOM b
    ON p.ID = b.AssemblyInstanceID
     WHERE b.AssemblyInstanceID Is Null
)
update q set NumerOfSubInstance = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM