首页 > 解决方案 > SQL选择插入触发器

问题描述

USE [BASE]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[Trig1]
   ON [dbo].[Report]
   for Update
AS BEGIN

    INSERT INTO DeclarationApprover ( ApproverLevel,Approver)
    select(9,'asd')
    from inserted

END

ApproverLevel 和 Approver 都是 nvarchar

我的查询给出了以下错误:

',' 附近的语法不正确。
选择(9,'asd')

标签: sqltsql

解决方案


删除 select 子句中的括号:

INSERT INTO DeclarationApprover (ApproverLevel, Approver)
SELECT 9, 'asd'
FROM INSERTED;

您不需要在 select 子句中使用实际的元组;只需使用文字值的 CSV 列表即可。

实际上,您甚至不需要FROM INSERTED,因为您实际上并未使用该记录中的任何列,因此以下内容应该有效:

INSERT INTO DeclarationApprover (ApproverLevel, Approver)
SELECT 9, 'asd';

推荐阅读