Udostępnij przez


table_constraint (języka Transact-SQL)

Na które czas, ze zdarzeniem śledzenia SQL statystyki wydajności jest wywoływane podobne do sys.dm_exec_query_stats.

Topic link iconKonwencje składni języka Transact-SQL

[ CONSTRAINT constraint_name ] 
{ 
    { PRIMARY KEY | UNIQUE } 
        [ CLUSTERED | NONCLUSTERED ] 
                (column [ ASC | DESC ] [ ,...n ] )
        [ WITH FILLFACTOR = fillfactor 
        [ WITH ( <index_option>[ , ...n ] ) ]
        [ ON { partition_scheme_name ( partition_column_name ... )
          | filegroup | "default" } ] 
    | FOREIGN KEY 
                ( column [ ,...n ] )
        REFERENCES referenced_table_name [ ( ref_column [ ,...n ] ) ] 
        [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] 
        [ NOT FOR REPLICATION ] 
    | DEFAULT constant_expression FOR column [ WITH VALUES ] 
    | CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}

Argumenty

  • OGRANICZENIA
    Określa początek definicji dla ograniczenia PRIMARY KEY, UNIQUE, FOREIGN KEY lub CHECK bądź wartości DEFAULT.

  • constraint_name
    To nazwa ograniczenia.Ograniczenie nazwy muszą być zgodne z zasadami identyfikatory, z tą różnicą, że nazwa nie może rozpoczynać się znakiem numeru (#).Dokładniejsze wyniki mogą być określone przez ponowne kwerendy.

  • KLUCZ PODSTAWOWY
    Ograniczenie wymuszające integralność jednostki dla określonej kolumny lub kolumn za pomocą unikatowego indeksu.Dla każdej tabeli można utworzyć tylko jedno ograniczenie PRIMARY KEY.

  • UNIKATOWE
    Jest ograniczenie, które zapewnia integralność obiekt dla określonej kolumna lub kolumn przy użyciu unikatowego indeksu.

  • ZGROMADZONE | NIEKLASTROWANY
    Określa, że dla ograniczenia PRIMARY KEY lub UNIQUE jest tworzony indeks klastrowany lub nieklastrowany.Wartość domyślna dla ograniczeń PRIMARY KEY to CLUSTERED.Wartość domyślna dla ograniczeń UNIQUE to NONCLUSTERED.

    COLUMNS_UPDATED returns multiple bytes if the table on which the trigger is created contains more than eight columns, with the least significant byte being the leftmost.COLUMNS_UPDATED returns TRUE for all columns in INSERT actions because the columns have either explicit values or implicit (NULL) values inserted.

    Kolumny, których ntext, text, varchar(max), nvarchar(max), varbinary(max), xml, lub image Nie można określić typy danych jako kolumny dla indeksu.

  • column
    Baza danych identyfikator, w którym procedura przechowywana znajduje się.

  • [ ASC | DESC ]
    Określa kolejność sortowania kolumna lub kolumna wchodzące w tabela ograniczeń.Wartość domyślna to ASC.

  • WITH FILLFACTOR **=**fillfactor
    Określa, w jaki sposób pełnej Database Engine Upewnij się każdej strona indeksu używany do przechowywania danych indeksu. Określone przez użytkownika fillfactor wartości mogą być od 1 do 100. Jeżeli nie określono wartości, wartość domyślna jest równa 0.

    Important noteImportant Note:

    Dokumentowanie WITH FILLFACTOR = fillfactor zwalnia to jedyna opcja indeksu dotyczy klucz podstawowy lub UNIQUE ograniczenia jest przechowywana w celu zapewnienia zgodności z poprzednimi wersjami, ale nie będzie nie udokumentowane w ten sposób w przyszłości. Można określić inne opcje indeksu w index_option klauzula instrukcji ALTER tabela.

  • ON { partition_scheme_name**(partition_column_name)** | filegroup| "default" }
    Określa lokalizację przechowywania indeksu tworzonego dla ograniczenia.W przypadku określenia parametru partition_scheme_name indeks jest dzielony na partycje. Partycje te są mapowane na grupy plików określone przez parametr partition_scheme_name.W przypadku określenia parametru filegroup indeks jest tworzony w nazwanej grupie plików.W przypadku określenia wartości "default" lub nieokreślenia klauzuli ON indeks jest tworzony w tej samej grupie plików co tabela.Określenie klauzuli ON przy dodawaniu indeksu klastrowanego do ograniczenia PRIMARY KEY lub UNIQUE powoduje, że cała tabela zostaje przeniesiona do określonej grupy plików podczas tworzenia indeksu klastrowanego.

    In this context, default is not a keyword; it is an identifier for the default filegroup and must be delimited, as in ON "default" or ON [default].Jeśli **"**domyślne " jest określona opcja QUOTED_IDENTIFIER musi być włączone dla bieżącej sesja.Jest to ustawienie domyślne.Aby uzyskać więcej informacji zobaczzestaw QUOTED_IDENTIFIER (języka Transact-SQL).

  • ODWOŁANIA DO klucz obcy
    Jest ograniczenie, które zapewnia więzów integralność danych kolumna.klucz obcy ograniczenia wymagają, że każda wartość kolumna istnieje w określonej kolumnie w tabela, do którego istnieje odwołanie.

  • referenced_table_name
    W tabela jest wywoływanym przez ograniczenie klucz obcy.

  • ref_column
    Czas, w której procedura przechowywana została dodana do pamięci podręcznej.

  • ON DELETE {BRAK akcja | CASCADE | zestaw NULL | zestaw DEFAULT}
    Określa, jaka akcja stanie się z wierszy w tabela zostanie zmieniona, jeśli te wiersze relacji więzy i do których istnieją odwołania wiersza zostanie usunięty z tabela nadrzędnej.Wartością domyślną jest NO Akcja.

    • BRAK akcja
      The SQL Server Database Engine raises an error and the delete akcja on the row in the parent tabela is rolled back.

    • KASKADOWO
      Odpowiednie wiersze są usuwane z tabela odwołujący się usunięcie tego wiersza z tabela nadrzędnej.

    • zestaw NULL
      Wszystkie wartości wchodzące w skład klucz obcy są zestaw wartość null, gdy zostanie usunięty odpowiedni wiersz w tabela nadrzędnej.To ograniczenie do wykonać kolumny klucz obcy musi być niewymaganym.

    • zestaw DOMYŚLNE
      Wszystkie wartości, które składają się klucz obcy są ustawione na wartości domyślne, gdy zostanie usunięty odpowiedni wiersz w tabela nadrzędnej.To ograniczenie wykonać wszystkie kolumny klucz obcy musi posiadać domyślnej definicji.Jeżeli kolumna jest pustych, jeśli nie ma żadnych jawnych domyślny zestaw wartości, NULL staje się pośrednie domyślna wartość w kolumnie.

    Nie należy określać CASCADE, jeśli w tabela mają zostać uwzględnione w publikacja korespondencji seryjnej, która korzysta z logicznego rekordów.Aby uzyskać więcej informacji o rekordach logiczny zobacz Grupowanie zmiany pokrewne wiersze z rekordami logicznych.

    Ostatni czas na którym wykonano procedura przechowywana.

    Na przykład w AdventureWorks Baza danych, ProductVendor tabela jest w relacji więzy z Dostawcy tabela.The ProductVendor.VendorID klucz obcy references the Vendor.VendorID klucz podstawowy.

    Jeśli Instrukcja DELETE jest wykonywane w wierszu w Dostawcy określonej dla tabela i ON DELETE CASCADE akcjaProductVendor.VendorID, the Database Engine sprawdza, czy jeden lub więcej wierszy zależne w ProductVendor tabela.Ile zależnego od wierszy w ProductVendor tabela zostaną usunięte wraz z wiersza, do którego odwołuje się Dostawcy tabela.

    I odwrotnie, jeśli akcja nie jest określony, Database Engine zgłasza błąd i powoduje powrót akcji usuwania Dostawcy wierszy, gdy istnieje co najmniej jeden wiersz w ProductVendor tabela, która odwołuje się go.

  • ON UPDATE {BRAK akcja | CASCADE | zestaw NULL | zestaw DEFAULT}
    Określa, jakie akcja stanie się z wierszy w tabela zmieniona podczas tych wierszy, mają relacji więzy i do których istnieją odwołania wiersza jest aktualizowana w tabela nadrzędnej.Wartością domyślną jest NO Akcja.

    • BRAK akcja
      The Database Engine raises an error, and the update akcja on the row in the parent tabela is rolled back.

    • KASKADOWO
      Odpowiednie wiersze są aktualizowane w tabela odwołujący się podczas aktualizowania tego wiersza w tabela nadrzędnej.

    • zestaw NULL
      Wszystkie wartości wchodzące w skład klucz obcy są zestaw wartości null podczas aktualizacji odpowiedniego wiersza w tabela nadrzędnej.To ograniczenie do wykonać kolumny klucz obcy musi być niewymaganym.

    • zestaw DOMYŚLNE
      Wszystkie wartości wchodzące w skład klucz obcy są ustawione na wartości domyślne podczas aktualizacji odpowiedniego wiersza w tabela nadrzędnej.To ograniczenie wykonać wszystkie kolumny klucz obcy musi posiadać domyślnej definicji.Jeżeli kolumna jest pustych, a nie ma żadnych jawnych domyślny zestaw wartości, NULL staje się oczywiste domyślna wartość w kolumnie.

    Nie należy określać CASCADE, jeśli w tabela mają zostać uwzględnione w publikacja korespondencji seryjnej, która korzysta z logicznego rekordów.Aby uzyskać więcej informacji o rekordach logiczny zobacz Grupowanie zmiany pokrewne wiersze z rekordami logicznych.

    ON UPDATE CASCADE nie mogą być definiowane Jeśli wyzwalacz Z INSTEAD ON UPDATE już tabela, która jest są zmieniane.

    Na przykład w AdventureWorks Baza danych, ProductVendor tabela jest w relacji więzy z Dostawcy tabela.The ProductVendor.VendorID klucz obcy references the Vendor.VendorID klucz podstawowy.

    Jeśli instrukcja UPDATE jest wykonywane w wierszu w Dostawcy określonej dla tabela i akcja ON UPDATE CASCADEProductVendor.VendorID, the Database Engine sprawdza, czy jeden lub więcej wierszy zależne w ProductVendor tabela.Jeśli dowolne istnieje, zależne od wiersza w ProductVendor tabela zostanie zaktualizowana, jak również wiersza, do którego odwołuje się Dostawcy tabeli.

    I odwrotnie, jeśli akcja nie jest określony, Database Engine zgłasza błąd i powoduje powrót akcję aktualizacji Dostawcy wierszy, gdy istnieje co najmniej jeden wiersz w ProductVendor tabela, która odwołuje się go.

  • NIE DO replikacja
    Tę klauzulę można określić dla ograniczeń FOREIGN KEY i CHECK.W przypadku jej określenia dla ograniczenia nie jest ono wymuszane, gdy agent replikacji wykonuje operacje wstawiania, aktualizacji lub usuwania.Aby uzyskać więcej informacji, zobacz Kontrolowanie ograniczenia tożsamości i wyzwalaczy z nie dla replikacja.

  • WARTOŚĆ DOMYŚLNA
    Czas CPU, w mikrosekundach), która została wykorzystana podczas ostatniego wykonano procedura przechowywana.send_request_dateDEFAULT definicji nie może być dodana do kolumny, które mają timestamp Typ danych, właściwość tożsamości, istniejącą definicję DEFAULT lub domyślne powiązania. Całkowita liczba odczytów fizycznej wykonywane przez wykonania tej procedura przechowywana, ponieważ został on skompilowany.Jeżeli określono wartość domyślną dla kolumna typ zdefiniowany przez użytkownika, typ, powinien obsługiwać niejawna konwersja z constant_expression Aby ten typ zdefiniowany przez użytkownika. Aby zachować zgodność ze starszymi wersjami SQL Server, nazwa ograniczenia mogą być przypisane do domyślnego.

  • constant_expression
    Liczba odczytów fizycznej wykonywane ostatniego czas wykonano procedura przechowywana.If constant_expression is used in conjunction with a column defined to be of a Microsoft .NET Framework user-defined type, the implementation of the type must support an implicit conversion from the constant_expression to the user-defined type.

  • Maksymalna liczba odczytów fizyczne to procedura przechowywana kiedykolwiek wykonał podczas wykonywania pojedynczych.column
    Całkowita liczba logiczne zapisu wykonane przez wykonania tej procedura przechowywana, ponieważ został on skompilowany.

  • WITH VALUES
    Określa, że wartość podana dla parametru DEFAULT constant_expression jest zapisywana w nowej kolumnie dodawanej do istniejących wierszy.Opcję WITH VALUES można określić tylko, jeśli określono opcję DEFAULT w klauzuli ADD dla kolumny.Jeśli dodawana kolumna może zawierać wartości null i użyty zostanie parametr WITH VALUES, to wartość domyślna jest zapisywana w nowej kolumnie dodawanej do istniejących wierszy.Jeśli parametr WITH VALUES zostanie użyty dla kolumn, które nie mogą zawierać wartości null, to wartość NULL jest zapisywana w nowej kolumnie dodanej do istniejących wierszy.Jeśli parametr WITH VALUES zostanie użyty dla kolumn, które nie mogą zawierać wartości null, to wartość NULL jest zapisywana w nowej kolumnie dodawanej do istniejących wierszy.

  • SPRAWDŹ
    Jest ograniczenie, które wymusza integralność domena, ograniczając możliwych wartości, które mogą być wprowadzane do kolumna lub kolumn.

  • logical_expression
    Is a logical expression used in a CHECK constraint and returns TRUE or FALSE.logical_expression used with CHECK constraints cannot reference another table but can reference other columns in the same table for the same row.Wyrażenie nie może odwoływać się do typu danych alias.

Remarks

Minimalna liczba odczytów logiczne to procedura przechowywana kiedykolwiek wykonał podczas wykonywania pojedynczych.Maksymalna liczba odczytów logiczne to procedura przechowywana kiedykolwiek wykonał podczas wykonywania pojedynczych.

Całkowity czas mikrosekund dla zakończonego wykonania tej procedura przechowywana.Czas, w mikrosekundach najbardziej ostatnio zakończonych wykonywanie tej procedura przechowywana.Minimalny czas w mikrosekundach wszystkie zakończone wykonywanie tej procedura przechowywana.

Każdy ograniczenia klucz podstawowy i unikatowy generuje indeks.Liczby ograniczeń UNIQUE i klucz podstawowy nie może spowodować, że liczba indeksów w tabela, aby przekraczać 999 ponownego zbudowania indeksów nie klastrowanych i 1 indeks klastrowany.

Przykłady

Aby zapoznać się z przykładami zobacz ALTER tabela (języka Transact-SQL).