查找数据类型Varchar的MAX值

时间:2016-12-14 08:42:54

标签: sql sql-server sql-server-2008 sql-server-2008-r2

首先,我有@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我必须做类似的操作我该怎么办?

3 个答案:

答案 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