更新查询的SQL语法

时间:2017-10-11 06:44:41

标签: sql sql-server tsql ms-access

我在MS Access中有一个更新查询,如下所示:

UPDATE ([tblDocument-VP] 
INNER JOIN [tbltransmittals-VP] ON [tblDocument-VP].OwnerDocumentNo = [tbltransmittals-VP].OwnerDocumentNo) 
INNER JOIN tblVendorName ON [tblDocument-VP].[Vendor Name] = tblVendorName.[VENDOR NAME] 
SET [tbltransmittals-VP].HyperDoc = [tblDocument-VP]![OwnerDocumentNo] + '-' + [tbltransmittals-VP].[REV] + '#' + [root]+[tblVendorName]![VendorDesc] + '\' + [tblDocument-VP]![Tag No] + '\' + [tblDocument-VP]![OwnerDocumentNo] + '-' + [REV] + '.pdf' + '#';

我想在SQL Server中创建一个视图,但是当我尝试这样做时,我收到错误

  

'('“

附近的语法不正确

我不知道什么是问题,我也想知道我可以使用视图作为更新查询吗?

2 个答案:

答案 0 :(得分:0)

您无法在视图中运行UPDATE

视图只能用于读取/显示数据。
您需要的是Stored Procedure

您的UPDATE - 查询中也存在多个语法错误。
Here'sINNER JOIN

更新的一个很好的解释

答案 1 :(得分:0)

扩展到GuidoG的评论,SP应该像

CREATE PROCEDURE uspYourProcedureName  
AS
    UPDATE t2
    SET t2.HyperDoc = 
                t1.[OwnerDocumentNo] + '-' + 
                t2.[REV] + '#' + [root]+
                t3.[VendorDesc] + '\\' + t1.[Tag No] + '\\' + t1.[OwnerDocumentNo] + '-' + [REV] + '.pdf' + '#'
    FROM [tblDocument-VP]  t1
    INNER JOIN [tbltransmittals-VP] t2
            ON t1.OwnerDocumentNo = t2.OwnerDocumentNo 
    INNER JOIN tblVendorName t3
            ON t1.[Vendor Name] = t3.[VENDOR NAME] 
GO