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

Sekwencja a tożsamość

Myślę, że znajdziesz odpowiedź tutaj

Używając atrybutu tożsamości dla kolumny, możesz łatwo generować liczby automatycznie zwiększające się (które są równie często używane jako klucz podstawowy). WithSequence będzie to inny obiekt, który możesz dołączyć do kolumny podczas wstawiania. W przeciwieństwie do tożsamości, następna liczba wartości kolumny zostanie pobrana z pamięci, a nie z dysku – dzięki temu Sequence jest znacznie szybsze niż Identity. Zobaczymy to w kolejnych przykładach.

A tutaj:

Sekwencje:Sekwencje były wymagane przez społeczność SQL Server od lat i są zawarte w tej wersji. Sekwencja to obiekt zdefiniowany przez użytkownika, który generuje sekwencję liczby. Oto przykład użycia Sequence.

i tu też:

Obiekt sekwencji SQL Server generuje sekwencję liczb, podobnie jak kolumna tożsamości w tabelach sql. Ale zaletą numerów sekwencyjnych jest to, że obiekt numeru sekwencyjnego nie jest ograniczony do pojedynczej tabeli sql.

a na msdn możesz również przeczytać więcej o użytkowaniu i dlaczego go potrzebujemy (tutaj):

Sekwencja to zdefiniowany przez użytkownika obiekt powiązany ze schematem, który generuje sekwencję wartości liczbowych zgodnie ze specyfikacją, za pomocą której utworzono sekwencję. Sekwencja wartości liczbowych jest generowana w porządku rosnącym lub malejącym w określonym przedziale i może się powtarzać (powtarzać) zgodnie z żądaniem. Sekwencje, w przeciwieństwie do kolumn tożsamości, nie są skojarzone z tabelami. Aplikacja odwołuje się do obiektu sekwencji, aby otrzymać jego następną wartość. Relacja między sekwencjami i tabelami jest kontrolowana przez aplikację. Aplikacje użytkownika mogą odwoływać się do obiektu sekwencji i koordynować klucze wartości w wielu wierszach i tabelach.

Sekwencja jest tworzona niezależnie od tabel przy użyciu instrukcji CREATESEQUENCE. Opcje umożliwiają kontrolowanie przyrostu, wartości maksymalnych i minimalnych, punktu początkowego, możliwości automatycznego ponownego uruchamiania i buforowania w celu poprawy wydajności. Aby uzyskać informacje o opcjach, zobacz TWORZENIE SEKWENCJI.

W przeciwieństwie do wartości kolumn tożsamości, które są generowane podczas wstawiania wierszy, aplikacja może uzyskać następny numer sekwencyjny przed wstawieniem wiersza, wywołując funkcję NEXT VALUE FOR. Numer sekwencyjny jest przydzielany po wywołaniu NEXT VALUE FOR, nawet jeśli numer nigdy nie jest wstawiany do tabeli. Funkcji NEXT VALUE FOR można użyć jako wartości domyślnej dla kolumny w definicji tabeli. Użyj sp_sequence_get_range, aby uzyskać zakres wielu numerów sekwencji.

Sekwencję można zdefiniować jako dowolny typ danych całkowitych. Jeśli typ danych nie jest określony, sekwencja jest domyślnie ustawiona na bigint.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. izolowanie podciągu w ciągu przed symbolem w SQL Server 2008

  2. Jak wyłączyć wszystkie ograniczenia wyboru i klucza obcego dla tabeli w programie SQL Server (przykłady T-SQL)

  3. Jak wstawić ciąg do innego ciągu w SQL Server za pomocą STUFF()

  4. Sparametryzowane zapytanie oczekuje parametru, którego nie podano

  5. podstawowa wstawka zbiorcza pyodbc