更新查询的 SQL 语法
Posted
技术标签:
【中文标题】更新查询的 SQL 语法【英文标题】:SQL syntax for update query 【发布时间】:2017-10-11 06:44:40 【问题描述】:我在 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 中创建一个视图,但是当我尝试这样做时,我得到一个错误
'('"附近的语法不正确
我不知道是什么问题,我也想知道我可以使用视图作为更新查询吗?
【问题讨论】:
你想在 sql server 中创建一个视图是什么意思?更新不能在视图中。你想在 sql server 中做同样的更新还是什么意思? 【参考方案1】:您不能在视图中运行 UPDATE
。
视图只能用于读取/显示数据。 您需要的是Stored Procedure。
您的UPDATE
-查询中还有多个语法错误。
Here'sINNER JOIN
's 更新的一个很好的解释
【讨论】:
【参考方案2】:延伸到 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
【讨论】:
以上是关于更新查询的 SQL 语法的主要内容,如果未能解决你的问题,请参考以下文章