Triggers 如何在Sql Server中自动递增nchar列

Triggers 如何在Sql Server中自动递增nchar列,triggers,sql-server-2008-r2,Triggers,Sql Server 2008 R2,我的桌子和主人的一样好 ReasonId nchar(10),Reason varchar(50),EntLog datetime. 内容如下: ReasonId Reason --------- ------- REA00001 Ask For Leave 添加新记录后,我必须自动生成下一列ReasonId作为REA00002您可以像这样生成下一个id select 'REA' + right('00000' + cast(max(right(ReasonId, 5)) + 1 as

我的桌子和主人的一样好

ReasonId nchar(10),Reason varchar(50),EntLog datetime.
内容如下:

ReasonId  Reason
--------- -------
REA00001  Ask For Leave

添加新记录后,我必须自动生成下一列ReasonId作为REA00002

您可以像这样生成下一个id

select 'REA' + right('00000' + cast(max(right(ReasonId, 5)) + 1 as varchar), 5)
from ReasonMaster 

当将nvarchar值“REA001”转换为数据类型int时,它给我一个错误,因为转换失败。最好使用一个可以立即工作的纯数字标识列。然后,您可以通过将数字转换为固定数字并添加文本前缀来格式化该数字-作为计算列、视图或前端。很少(如果有的话)需要像这样存储预合成的值。