【发布时间】:2010-09-20 19:12:37
【问题描述】:
如果您使用 GUI 在 MS SQL Management Studio 中创建新触发器,它会为您提供以下模板:
--====================================
-- Create database trigger template
--====================================
USE <database_name, sysname, AdventureWorks>
GO
IF EXISTS(
SELECT *
FROM sys.triggers
WHERE name = N'<trigger_name, sysname, table_alter_drop_safety>'
AND parent_class_desc = N'DATABASE'
)
DROP TRIGGER <trigger_name, sysname, table_alter_drop_safety> ON DATABASE
GO
CREATE TRIGGER <trigger_name, sysname, table_alter_drop_safety> ON DATABASE
FOR <data_definition_statements, , DROP_TABLE, ALTER_TABLE>
AS
IF IS_MEMBER ('db_owner') = 0
BEGIN
PRINT 'You must ask your DBA to drop or alter tables!'
ROLLBACK TRANSACTION
END
GO
我应该使用这个模板吗?
我对触发器一无所知,但我认为我需要使用它们。在这种情况下,目的是在插入表时,我需要更新其中一个字段。
请帮助我开始!
【问题讨论】:
-
“对触发器一无所知,但我认为我需要使用它们”引发各种警报。在确定我需要它们之前,我会推迟使用它们。 :)
-
您能解释一下您正在更新什么类型的数据(具体示例会有所帮助)吗?数据是否基于其他字段?
-
@jenny 此答案中的评论是您认为需要触发器的原因吗? stackoverflow.com/questions/3754077/… 在这种情况下,不要 - triggers 只是一个建议,到目前为止还不是最容易实现的。
-
@Nelson:当有人添加新记录时,我需要其中一个字段的格式正确,请参阅:stackoverflow.com/questions/3754077/…
标签: sql sql-server triggers