Sql server 如何创建一个触发器来放置空值情况下的消息
通常我喜欢自己解决问题,但不久前我启动了SQLServer,这让我很头疼 无论如何,问题是要编写一个触发器,在添加到Sql server 如何创建一个触发器来放置空值情况下的消息,sql-server,Sql Server,通常我喜欢自己解决问题,但不久前我启动了SQLServer,这让我很头疼 无论如何,问题是要编写一个触发器,在添加到customerEmployee表的任何记录中放置“No First Name”,该表的EmpFirstName字段为NULL 我所做的是: `CREATE TRIGGER noFirstName ` `ON dbo.CUSTOMEREMPLOYEE` `FOR INSERT, UPDATE AS` <code>print 'No First Name
customerEmployee
表的任何记录中放置“No First Name”,该表的EmpFirstName
字段为NULL
我所做的是:
`CREATE TRIGGER noFirstName `
`ON dbo.CUSTOMEREMPLOYEE`
`FOR INSERT, UPDATE AS`
<code>print 'No First Name'</code>
然后,我编写了另一个查询来测试它,但它返回一个错误,该错误表示:
Cannot insert the value NULL into column 'TITLE', table 'Chapter8.dbo.CUSTOMEREMPLOYEE'; column does not allow nulls. INSERT fails.
The statement has been terminated.
有人能看出哪里出了问题吗?我认为问题在于您正在打印:
打印“没有名字”
,但没有将值插入表中
请参阅此问题:我认为问题在于您正在打印:
打印“没有名字”
,但没有将值插入表中
参考此问题:是,应按照Adel指示更改触发器。但我很确定你的错误与触发器本身无关。对于默认值为AFTER触发器,并且您在标题列上有一个不允许插入null的约束。。AFTER触发器在插入数据并通过约束检查后执行,因此为了执行所需的操作,需要将TITLE列设置为null。你可以用一个代替触发器来改变插入的内容,它应该是预约束的。我看我做错了什么!谢谢大家!是,应按照阿德尔的指示更改触发器。但我很确定你的错误与触发器本身无关。对于默认值为AFTER触发器,并且您在标题列上有一个不允许插入null的约束。。AFTER触发器在插入数据并通过约束检查后执行,因此为了执行所需的操作,需要将TITLE列设置为null。你可以用一个代替触发器来改变插入的内容,它应该是预约束的。我看我做错了什么!谢谢大家!