首先,我有@text
个表tblSample
作为数据类型ID
的列。要为每个事务自动生成ID,我创建了一个存储过程:
INT
在此观察DECLARE @Id INT
SELECT @Id = MAX(Id)
FROM tblSample
IF @Id IS NULL
BEGIN
SELECT 0 as Id
END
ELSE
SELECT MAX(Id) as ID FROM tblSample
是否没有行ID
然后返回0或返回MAX(ID)值,以便下次插入将大于max(ID)。
那很好,但现在我的数据类型为MAX(Id)=0
的列ID
我必须做类似的操作我该怎么办?
答案 0 :(得分:2)
代码看起来很好,所以它也应该与VARCHAR一起工作,但我的建议是使用同样数据类型的存储变量,这样它就不会在操作中的任何地方发生冲突:
DECLARE @Id VARCHAR(10)
答案 1 :(得分:1)
我认为你可以使用MAX(CAST(varcharcolumn AS Int))
答案 2 :(得分:0)
DECLARE @Id INT
SELECT @Id=MAX(Id) FROM tblSample
IF @Id IS NULL
BEGIN
SELECT 'Your_VarCharValue' + CAST(0 AS VARCHAR) as Id
END
ELSE
SELECT 'Your_VarCharValue' + CAST(MAX(Id) AS VARCHAR) as ID FROM tblSample