Jayanta Modak Ответов: 1

Как сгенерировать автоматический буквенно-цифровой inv. Номер в процедуре хранения SQL


как создать автоматический буквенно-цифровые инв. количество в процедуру SQL магазине
я использовал Sql Server 2008 r2 и vb.net 2012 год
Я получил ошибку ----

Msg 245, Уровень 16, Состояние 1, Процедура P_GetAutoIDPurchaseInv, Строка 13
Ошибка преобразования в тип varchar значение '17-18/00002' в тип данных int.


Когда я просто использую в этих строках то он работает нормально но когда я использую полный код то показываю ошибку пожалуйста помогите мне сэр--
<pre><pre>alter proc P_GetAutoIDPurchaseInv
as
--select top 1 purinvid from tbl_pur_inv order by purinvid desc

begin
if (select top 1 purinvid from tbl_pur_inv order by purinvid desc)=0
declare @lastval char(11) 
set @lastval = '17-18/00001' 
select @lastval 'purinvid'
end


Что я уже пробовал:

alter proc P_GetAutoIDPurchaseInv
as
--select top 1 purinvid from tbl_pur_inv order by purinvid desc

begin
if (select top 1 purinvid from tbl_pur_inv order by purinvid desc)=0
declare @lastval char(11) 
set @lastval = '17-18/00001' 

declare @i int 
	set @i = right(@lastval,5) + 1 
	--return 'C' + right('000' + convert(varchar(10),@i),4) 
	return '17-18/'+ right('0000' + convert(varchar(11), @i),5) 
select @lastval 'purinvid'
end

1 Ответов

Рейтинг:
2

connectwithpandey

--Ты можешь попробовать вот это

--CREATE A TEMPORARY TABLE
CREATE TABLE #myTemp123
(
                Id INT NOT NULL IDENTITY(1,1),
                AutoId AS 'ABC' + RIGHT('0000'+ CONVERT(VARCHAR(5),Id),5)
)
--INSERT DEFAULT 10000 RECORDS AT ONCE IN LOOP Simply TYPE GO 10000
INSERT INTO #myTemp123 DEFAULT VALUES;
--CHECK INSERTED RECORD
SELECT * FROM #myTemp123


Jayanta Modak

на самом деле я хочу запустить его два раза когда inv start time и сэкономить время потому что если другой пользователь если сохранить любой inv