如果另一个列值为false,则将列值设置为null

时间:2019-03-19 23:37:43

标签: sql sql-server database

我正在使用SQL Server Management Studio。我已经创建了一个表[PatientsRecords],其数据类型为日期。在此表下,有一个列[DisChargedDate]。我刚刚添加了另一列[IsDischarged],该列的数据类型为bit。我想做些什么,以便每次插入[PatientsRecords]表时,如果[IsDischarged]值为0(表示患者尚未真正离开)。因此,无论[DisChargedDate]的值是多少,都将其设置为null。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我建议更改插入查询,而不要使用触发器,因为这些触发器可能会阻塞您的表,并且会降低插入速度,而没有任何好处。

insert into dbo.PatientsRecords (DisChargedDate,IsDischarged)
select
IsDischarged
case when IsDischarged = 0 then null else DisChargedDate end as DisChargedDate
from YourSourceTable

如果您使用代码将代码插入表中,然后将上面的代码段包装到插入过程中,然后从代码中调用它,并传递必要的参数