有人可以给我一个代替MSSQL插入触发器的骨架体。我正在尝试测试采购订单列中的最大值(这是一个整数),并且在插入时,它会抓取一个最大值增量并将其作为采购订单ID插入。该列未设置自动增量选项,因此我使用触发器来解决这个问题。
感谢。
答案 0 :(得分:6)
以下是更改表格以包含标识列的方法。
创建一个具有相同结构的新表,但在Purchase Order ID上有一个标识列。您可以使用“脚本表作为”,只需更改采购订单ID的行,如:
[Purchase Order Id] int identity primary key
在新表上启用标识插入:
SET IDENTITY INSERT NewTable ON
复制数据:
INSERT INTO NewTable(Columns)SELECT * FROM CurrentTable
关闭身份插入:
SET IDENTITY INSERT NewTable OFF
重命名(或删除)旧表,使其不再使用:
EXEC sp_rename'CurrentTable','BackupTable';
将新表格移至:
EXEC sp_rename'NewTable','CurrentTable';
现在你有一个很好的标识列,这比讨厌的触发器要好得多。
答案 1 :(得分:0)
正如Andomar所描述的那样,在我看来,创建一个新表来适当地支持您的特定需求将是理想的行动方案。
那就是说,如果您希望关闭而不是插入触发器路由,那么以下Microsoft参考提供了一个详细的示例。