StoredProcs.sql
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:1k
源码类别:

C#编程

开发平台:

Others

  1. --
  2. -- Create a procedure to insert a new category
  3. --
  4. CREATE PROCEDURE CategoryInsert ( @CategoryName NVARCHAR(15),
  5.                                   @Description NTEXT,
  6.                                   @CategoryID INTEGER OUTPUT ) AS
  7.   SET NOCOUNT OFF;
  8.   INSERT INTO Categories (CategoryName,Description)
  9.     VALUES(@CategoryName, @Description);
  10.   SELECT @CategoryID = @@IDENTITY ;
  11. GO
  12. --
  13. -- Create the audit log table
  14. --
  15. CREATE TABLE CategoryAudit
  16.   (
  17.     AuditID int NOT NULL IDENTITY (1, 1),
  18.     CategoryID int NOT NULL,
  19.     OldName NVARCHAR(15) NULL,
  20.     NewName NVARCHAR(15) NOT NULL
  21.   )
  22. GO
  23. -- 
  24. -- And add a primary key
  25. --
  26. ALTER TABLE CategoryAudit
  27.   ADD CONSTRAINT PK_CategoryAudit 
  28.     PRIMARY KEY ( AuditID )
  29. GO
  30. -- 
  31. -- And add a foreign key
  32. --
  33. ALTER TABLE CategoryAudit
  34.   ADD CONSTRAINT FK_CategoryAudit_Category
  35.     FOREIGN KEY ( CategoryID )
  36.       REFERENCES Categories ( CategoryID )
  37. GO
  38. --
  39. -- Create a trigger to insert changes into the audit table
  40. --
  41. CREATE TRIGGER CategoryInsertTrigger
  42.   ON Categories
  43.   AFTER INSERT
  44. AS
  45.   INSERT INTO CategoryAudit ( CategoryID , NewName )
  46.     SELECT CategoryID, CategoryName
  47.       FROM Inserted ;
  48. GO
  49. CREATE TRIGGER CategoryUpdateTrigger
  50.   ON Categories
  51.   AFTER UPDATE
  52. AS
  53.   INSERT INTO CategoryAudit ( CategoryID , OldName , NewName )
  54.     SELECT old.CategoryID, old.CategoryName, new.CategoryName
  55.       FROM Deleted AS old,
  56.            Categories AS new
  57.       WHERE old.CategoryID = new.CategoryID ;
  58. GO
  59. --