Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Identity z wiodącymi dopełnionymi zerami

Jak już słusznie zauważyli inni – INT nigdy nie ma wiodących zer – po prostu przechowuje wartość, to wszystko (i to dobrze).

Jeśli potrzebujesz dodatkowego formatowania, zawsze możesz dodać do tabeli kolumnę obliczeniową, na przykład:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber AS  RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

W ten sposób twoja INT IDENTITY będzie używana jako INT i zawsze zawiera wartość liczbową, podczas gdy DisplayNumber zawiera 001, 002, ... 014, 015, ..... i tak dalej - automagicznie, zawsze aktualne.

Ponieważ jest to pole utrwalone, jest teraz częścią Twojej tabeli i możesz wykonywać na nim zapytania, a nawet umieszczać na nim indeks, aby przyspieszyć wykonywanie zapytań:

SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'

I oczywiście możesz użyć dowolnego formatowania w definicji swojej kolumny wyliczanej, więc możesz również dodać przedrostek lub coś takiego:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber 
      AS  'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

W tym przypadku Twój DisplayNumber byłoby ABC-001, ABC-002, ... i tak dalej.

Otrzymujesz to, co najlepsze z obu światów - zachowujesz TOŻSAMOŚĆ, która jest numeryczna i automatycznie zwiększana przez SQL Server, i możesz zdefiniować format wyświetlania w dowolny sposób i mieć go w każdej chwili.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Baza danych kopii zapasowych SQL Server Express | Jak zaplanować automatyzację i czyszczenie kopii zapasowej SQL Express

  2. Generuj wszystkie kombinacje w SQL

  3. Najszybsza metoda wstawiania, aktualizowania i wybierania programu SQL Server

  4. Zmień istniejącą kolumnę na kolumnę obliczoną w SQL Server (przykład T-SQL)

  5. Usuwanie zapamiętanej listy loginów i haseł w SQL Server Management Studio