我正在使用SQL Server Management Studio。我已经创建了一个表[PatientsRecords],其数据类型为日期。在此表下,有一个列[DisChargedDate]。我刚刚添加了另一列[IsDischarged],该列的数据类型为bit。我想做些什么,以便每次插入[PatientsRecords]表时,如果[IsDischarged]值为0(表示患者尚未真正离开)。因此,无论[DisChargedDate]的值是多少,都将其设置为null。
感谢您的帮助!
答案 0 :(得分:1)
我建议更改插入查询,而不要使用触发器,因为这些触发器可能会阻塞您的表,并且会降低插入速度,而没有任何好处。
insert into dbo.PatientsRecords (DisChargedDate,IsDischarged)
select
IsDischarged
case when IsDischarged = 0 then null else DisChargedDate end as DisChargedDate
from YourSourceTable
如果您使用代码将代码插入表中,然后将上面的代码段包装到插入过程中,然后从代码中调用它,并传递必要的参数