Sql 每当有插入时更新表的触发器
我尝试使用触发器(在SQL Server中)在表上有插入时更新表,但出现错误: 从字符串转换日期和/或时间时,转换失败 使用的触发器:Sql 每当有插入时更新表的触发器,sql,sql-server,tsql,Sql,Sql Server,Tsql,我尝试使用触发器(在SQL Server中)在表上有插入时更新表,但出现错误: 从字符串转换日期和/或时间时,转换失败 使用的触发器: create trigger [dbo].[update_table_scan_for_insert] on [dbo].[table_scan] for insert as begin update table_scan set start_date = getdate() where start_date = '
create trigger [dbo].[update_table_scan_for_insert]
on [dbo].[table_scan]
for insert
as
begin
update table_scan set
start_date = getdate()
where start_date = 'NULL'
end
插入发生后,当
start\u date
中存在空值时,将更新表table\u scan
。使用是空的
而不是SQL Server中的'NULL'
create trigger [dbo].[update_table_scan_for_insert]
on [dbo].[table_scan]
for insert
as
begin
update table_scan set
start_date = getdate()
where start_date IS NULL
end
您也可以尝试此
方法,其中ISNULL(start_date,'NULL')='NULL'
start_date='NULL'
应该是start_date is NULL
您的触发器(如果按照建议更正和实现)将使用空值更新表中的每一行。这真的是你的目标吗?这难道不应该只更新新插入的行(如果有)?即使它被固定为只更新正在插入的行,它也会阻止任何类型的回溯插入,而不进行后续更新。您确定所需的行为不是默认约束吗?