Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 добавление символов в строку  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Добрый день !!

подскажите пожалуйста, Мне необходимо генерировать уникальные ключи (формат "PR00000000"), собственно остановился на вот этом:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[GetNewPR] 
   ( @User varchar(10),
     @KEY varchar(10) output)
	AS
BEGIN
  SET NOCOUNT ON
----------------------
DECLARE @PR int
SET @PR = (INSERT INTO DropPR (ADDDATE,ADDWHO) VALUES (GETDATE(),@User) select @@IDENTITY)
SET @KEY = 'PR'++@PR
END
END



застрял на следующем моменте ( 'PR'+ЧЧ+@PR), не как не получается реализовать вместо "ЧЧ" следующее действие:
Вставить 0 в количестве 8-len(@PR)

ВСЕМ СПАСИБО ЗАРАНЕЕ
16 авг 13, 15:47    [14719369]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
DmitryVT
Добрый день !!

подскажите пожалуйста, Мне необходимо генерировать уникальные ключи (формат "PR00000000"), собственно остановился на вот этом:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[GetNewPR] 
   ( @User varchar(10),
     @KEY varchar(10) output)
	AS
BEGIN
  SET NOCOUNT ON
----------------------
DECLARE @PR int
SET @PR = (INSERT INTO DropPR (ADDDATE,ADDWHO) VALUES (GETDATE(),@User) select @@IDENTITY)
SET @KEY = 'PR'+ЧЧ+@PR
END
END



застрял на следующем моменте ( 'PR'+ЧЧ+@PR), не как не получается реализовать вместо "ЧЧ" следующее действие:
Вставить 0 в количестве 8-len(@PR)

ВСЕМ СПАСИБО ЗАРАНЕЕ
16 авг 13, 15:48    [14719381]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
Гость333
Member

Откуда:
Сообщений: 3683
DmitryVT
Вставить 0 в количестве 8-len(@PR)

replicate('0',8-len(@PR))
16 авг 13, 15:49    [14719390]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
DECLARE @PR numeric (38,0)
SET @PR = (INSERT INTO DropPR (ADDDATE,ADDWHO) VALUES (GETDATE(),'11') select @@IDENTITY as ID)
SELECT 'PR'+replicate('0',8-len(@PR))+@PR


@@IDENTITY запрещено присваивать переменной ??
16 авг 13, 15:57    [14719439]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
DmitryVT
DECLARE @PR numeric (38,0)
SET @PR = (INSERT INTO DropPR (ADDDATE,ADDWHO) VALUES (GETDATE(),'11') select @@IDENTITY as ID)
SELECT 'PR'+replicate('0',8-len(@PR))+@PR


@@IDENTITY запрещено присваивать переменной ??
А тут и нет никакого присвоения.
Можно узнать, где Вы про такой синтаксис узнали?
16 авг 13, 16:01    [14719467]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
да не где я только пытаюсь освоить то что в гугле найду
16 авг 13, 16:04    [14719482]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
DmitryVT
да не где я только пытаюсь освоить то что в гугле найду
Лучше тут смотрите: http://msdn.microsoft.com/ru-ru/library/bb510741(v=sql.100).aspx
16 авг 13, 16:05    [14719489]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
Гость333
Member

Откуда:
Сообщений: 3683
DmitryVT
@@IDENTITY запрещено присваивать переменной ??

Это вы прочитали в сообщении об ошибке?
16 авг 13, 16:08    [14719508]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Это ручки мои пока кривые )), спасибо все получилось
DECLARE @PR numeric (38,0)

 INSERT INTO DropPR (ADDDATE,ADDWHO) VALUES (GETDATE(),'11')
 SET @PR = (SELECT SCOPE_IDENTITY() as ID)
SELECT  'PR'+replicate('0',8-len(@PR))+Cast(@PR as varchar)


ВСЕМ ОГРОМНОЕ СПАСИБО
16 авг 13, 16:11    [14719514]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
Гость333
Member

Откуда:
Сообщений: 3683
DmitryVT
SET @PR = (SELECT SCOPE_IDENTITY() as ID)

Проще надо быть :)
SET @PR = SCOPE_IDENTITY()
16 авг 13, 16:19    [14719551]     Ответить | Цитировать Сообщить модератору
 Re: добавление символов в строку  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Гость333
DmitryVT
SET @PR = (SELECT SCOPE_IDENTITY() as ID)

Проще надо быть :)
SET @PR = SCOPE_IDENTITY()
Я бы даже сказал,
SET @KEY = 'PR'+right(100000000+SCOPE_IDENTITY(),8)
16 авг 13, 16:29    [14719616]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить