【问题标题】:C# Migrations triggers updateC# 迁移触发器更新
【发布时间】:2019-02-04 22:32:53
【问题描述】:

我有一个为部分类中的触发器创建的现有数据库迁移。现在我需要更新这个触发器。退出代码

 string triggerBodyIns = TriggerBodyIns;
 string triggerBodyUpd = TriggerBodyUpd;
 string triggerBodyDel = TriggerBodyDel;

 this.CreateTrigger(SchemaName, tableName, "_INS", TriggerType.Insert, 
 false,triggerBodyIns.Replace("XXXXXX", tableName));

 this.CreateTrigger(SchemaName, tableName, "_UPD", TriggerType.Update, 
 false,triggerBodyUpd.Replace("XXXXXX", tableName));
 this.CreateTrigger(SchemaName, tableName, "_DEL", TriggerType.Delete, false,
 triggerBodyDel.Replace("XXXXXX", tableName));

我正在尝试编写以下 SQL 语句,但出现语法错误。对于上述 3 个触发器中的每一个

this.Sql($"ALTER TRIGGER {SchemaName},{tableName},_INS,{TriggerType.Insert},{false},{triggerBodyIns.Replace(XXXXXX ,{tableName})}");

有什么建议吗?

【问题讨论】:

    标签: c# sql-server database-migration


    【解决方案1】:

    设法解决它

    Sql($"ALTER TRIGGER {SchemaName}.[UserAccess__INS] ON {SchemaName}.{tableName} FOR Insert  AS BEGIN SET NOCOUNT ON declare @Now as DateTimeOffset = SYSDATETIMEOFFSET () declare @EntityName as nvarchar = \'{tableName}\' INSERT SynchronisationData (Id, EntityName, EntityKey, UpdateTime, UpdateType, Created, CreatedBy, Modified, ModifiedBy) SELECT NEWID(), \'{tableName}\', Id, Created, 0, @Now,\'InsertTrigger\', @Now,\'InsertTrigger\'FROM inserted END");
    Sql($"ALTER TRIGGER {SchemaName}.[UserAccess__UPD] ON {SchemaName}.{tableName} FOR Update  AS BEGIN SET NOCOUNT ON declare @Now as DateTimeOffset = SYSDATETIMEOFFSET () declare @EntityName as nvarchar = \'{tableName}\' INSERT SynchronisationData (Id, EntityName, EntityKey, UpdateTime, UpdateType, Created, CreatedBy, Modified, ModifiedBy) SELECT NEWID(),\'{tableName}\', Id, Modified, 1, @Now,\'UpdateTrigger\', @Now,\'UpdateTrigger\'FROM inserted END");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2012-02-11
      • 1970-01-01
      • 2021-07-04
      • 2020-12-23
      相关资源
      最近更新 更多