Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何创建一个触发器来放置空值情况下的消息_Sql Server - Fatal编程技术网

Sql server 如何创建一个触发器来放置空值情况下的消息

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

通常我喜欢自己解决问题,但不久前我启动了SQLServer,这让我很头疼

无论如何,问题是要编写一个触发器,在添加到
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。你可以用一个代替触发器来改变插入的内容,它应该是预约束的。我看我做错了什么!谢谢大家!