我想自動增加字母數字字段(例如productid
在product
表中)。使用字母數字自動遞增值
但我收到一個錯誤(見下文)。 有人可以看看這個錯誤或任何其他方法來完成這項任務?
我的表的詳細信息:
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
我剛開了以下錯誤:
Msg 8120, Level 16, State 1, Procedure spInsertInProduct, Line 10 Column 'tblProduct.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Msg 8120, Level 16, State 1, Procedure spInsertInProduct, Line 10 Column 'tblProduct.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.**
這是否意味着要求幫助? 「創建表」語句是一個很長的行,因此無法讀取,與錯誤消息相同。此外,沒有提供關於使用的數據庫和數據庫版本的信息。 – vog 2010-10-31 15:10:03
我的第一個問題是無法格式化問題的可讀格式。數據庫版本是SQL Server 2005 – sunit 2010-10-31 15:12:00
我試圖重新格式化問題並將您的數據庫版本添加爲標記。 – 2010-10-31 15:13:11