我在 SQL Server 2005 数据库的表中有一个“InsertTime”字段,当记录首次插入数据库时,该字段默认为“getDate()”。我想确保此专栏不再更新。
是否可以将此列设置为只读,或者是否有更好的方法来执行此操作,而无需为开发人员编写所有 sql?
您可以通过创建一个 UPDATE 触发器来检查该列的更新,然后将其回滚,从而实现“只读”字段。
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'ReadOnlyInsertTime_tr' AND type = 'TR')
DROP TRIGGER dbo.ReadOnlyInsertTime_tr;
GO
CREATE TRIGGER ReadOnlyInsertTime_tr
ON dbo.MyTable
AFTER UPDATE
AS
IF (UPDATE(InsertTime))
BEGIN
ROLLBACK
-- Raise an informative error
-- RAISERROR (50009, 16, 10)
END;
GO
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)