【发布时间】:2016-12-14 08:42:53
【问题描述】:
首先,我有一个表tblSample,其中ID 作为数据类型INT 的列。为了为每笔交易自动生成 ID,我创建了一个存储过程:
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 没有行MAX(Id)=0 然后返回 0 或者返回 MAX(ID) 值,以便下一次插入将大于 max(ID)。
没关系,但现在我的列 ID 的数据类型为 VARCHAR 我必须进行类似的操作,我该怎么做?
【问题讨论】:
-
让我清楚地解释一下,例如有一个名为“X”的列,用户输入 x 值为 2,这样将向用户显示 2 行和一些列,用户在点击时输入数据提交这两行应该分配相同的ID
-
同样的逻辑也应该适用于 VARCHAR 类型。上面的代码有什么问题??
-
是的,我很困惑 MAX(varchar) 和 VARCHAR(max)...谢谢
标签: sql sql-server sql-server-2008 sql-server-2008-r2