【发布时间】:2010-10-31 15:06:28
【问题描述】:
我正在尝试自动增加字母数字字段(比如product 表中的productid)。
但我收到错误消息(见下文)。 有人可以看看这个错误或任何其他方法来完成这个任务吗?
我的餐桌详情:
create table tblProduct
(
id varchar(15)
)
create procedure spInsertInProduct
AS
Begin
DECLARE @PId VARCHAR(15)
DECLARE @NId INT
DECLARE @COUNTER INT
SET @PId = 'PRD00'
SET @COUNTER = 0
--This give u max numeric id from the alphanumeric id
SELECT @NId = cast(substring(id, 3, len(id)) as int) FROM tblProduct group by left(id, 2) order by id
--here u increse the vlaue to numeric id by 1
SET @NId = @NId + 1
--GENERATE ACTUAL APHANUMERIC ID HERE
SET @PId = @PId + cast(@NId AS VARCHAR)
INSERT INTO tblProduct(id)values (@PId)
END
我遇到以下错误:
消息 8120,级别 16,状态 1,过程 spInsertInProduct,第 10 行 列 'tblProduct.id' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 消息 8120,级别 16,状态 1,过程 spInsertInProduct,第 10 行 列“tblProduct.id”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。**
【问题讨论】:
-
这是一个严肃的求助请求吗? “create table”语句是一长行,因此不可读,与错误消息相同。此外,没有提供有关使用的数据库和数据库版本的信息。
-
我的第一个问题是无法格式化问题可读格式。数据库版本是 SQL Server 2005
-
我尝试重新格式化问题并将您的数据库版本添加为标签。
-
您可能要考虑的字母数字/自动编号的两个答案:stackoverflow.com/questions/2177584/… 和 stackoverflow.com/questions/2655392/…
标签: sql sql-server sql-server-2005