如何运行SQL触发

How to run SQL trigger

我是 SQL Server 2008 的新手,我写了一个触发器,希望只执行更新或插入的 hassubproductspdisplaytype 列,如果它们有一个值并且不为空。

感谢任何帮助。

CREATE TRIGGER [dbo].[hassubproductcheck] 
ON [dbo].[products]
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
    UPDATE products 
    SET hassubproduct = LTRIM(RTRIM(hassubproduct))

    UPDATE products 
    SET spdisplaytype  = LTRIM(RTRIM(spdisplaytype))
END
GO

这些内容可能更像您想要的。

CREATE TRIGGER [dbo].[hassubproductcheck] ON [dbo].[products] 
WITH EXECUTE AS CALLER FOR INSERT, UPDATE 
AS BEGIN 
    Update p 
        set hassubproduct = LTRIM(RTRIM(i.hassubproduct)) 
        , spdisplaytype = LTRIM(RTRIM(i.spdisplaytype)) 
    from Products p 
    join inserted i on i.PrimaryKey = p.PrimaryKey
    where i.hassubproduct > ''
        OR i.spdisplaytype > ''

END 

您必须使用以下代码来定义触发器。这将有助于更新。同样,我们也需要为插入创建一个。

   CREATE TRIGGER [dbo].[hassubproductcheck] ON [dbo].products]             
     AFTER UPDATE 
        AS
        INSERT INTO DBO.SAMPLE_TRIGGER
        SELECT hassubproduct, 'UPDATE(PREVIOUS)' [TABLE-UPDATE] FROM DELETED
        GO

      CREATE TRIGGER [dbo].[hassubproductcheck] ON [dbo].products]             
      AFTER UPDATE
       AS
      INSERT INTO DBO.SAMPLE_TRIGGER
        SELECT hassubproduct, 'UPDATE (LATEST)' [TABLE-UPDATE] FROM DELETED
       GO