2016-03-31 16 views
0

Bir tablo geliştirmek için çalışıyorum ve bu konuda yanlış bir şekilde gidebileceğimi bir konuyla karşılaşıyorum ama bir yol bloğuna çarptım. Benim masaüstümde bir NVARCHAR (12) Alanı olduğunu ve şu anda sayıları olduğunu güncellemem gereken bir kimliğim var. Aşağıdaki gibi biçimlendirmem gerekiyor: TP0000000001, TP0000000002, ..., TP0000245632, ..., TP9999999999. TP ve takip eden Sıfırları ekleyebilmem için bir yol bulmalıyım. İD toplam numarası 12'ye kadar ekler. Şu anda biraz sabit kodlanmış bilgilerle bir süre döngüsünü kullanıyorum ama yaklaşık 14000'e sahip olduğum için dinamik olması gerekiyor bir güncelleme yapmak için kayıtlar. İşte Dinamik Birleştirme

UPDATE Vendor 
SET TPPRM_ID = <The Formatted Value> 

anda zor ben biçimine ihtiyacı am sütunu kodlama ile doğru sayıyı biçimlendirir kodudur Eğer güncellemede görebileceğiniz gibi TPPRM_ID diyoruz edilir: Burada

ben kullanırım güncelleme . Bu konuda herhangi bir yardım büyük takdir edilecektir.

DECLARE @Var NVARCHAR(12) 
DECLARE @Counter INT 
SET @VAR = 'TP' 
SET @Counter = 1 

WHILE @Counter <= 12 
    BEGIN 
     SET @VAR = @VAR + '0' 
     SET @Counter = @Counter + 1 

     IF LEN(@Var) >= 10 
     BEGIN 
      SELECT @VAR + '10' 
      PRINT @VAR 
      BREAK 
     END 

     --PRINT @VAR 
    END 

cevap

1

Sıfırların üzerine yazıp en sağdaki 10 karakteri kesmeniz yeterli. Ardından 'TP''u ekleyin.

SELECT 'TP' + RIGHT(REPLICATE('0',10) + TPPRM_ID),10) 
FROM Vendor 
+0

!!! Bu harika çalışıyor. –

1

başka çözüm - Büyük

SELECT 'TP' + REPLACE(STR(TPPRM_ID, 10), ' ', 0) 
FROM Vendor 
İlgili konular