sp_bindefault (Transact-SQL)

Wiąże domyślną do kolumna lub do typu danych alias.

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. Zaleca się utworzenie definicji domyślnej za pomocą DEFAULT słowo kluczowe ALTER tabela or TWORZENIE tabela instrukcji w zamian.Aby uzyskać więcej informacji zobaczCreating and Modifying DEFAULT Definitions.

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

sp_bindefault [ @defname = ] 'default' , 
    [ @objname = ] 'object_name' 
    [ , [ @futureonly = ] 'futureonly_flag' ] 

Argumenty

  • [ @defname= ] 'default'
    Is the name of the default that is created by CREATE DEFAULT.default is nvarchar(776), with no default.

  • [ @objname= ] 'object_name'
    Is the name of table and column or the alias data type to which the default is to be bound.object_name is nvarchar(776) with no default.object_name cannot be defined with the varchar(max), nvarchar(max), varbinary(max), xml, or CLR user-defined types.

    Jeśli object_name jest to nazwa jednej części jest rozpoznany jako typ danych alias. Jeżeli jest to nazwa dwóch lub trzech części, jest najpierw rozpoznawana jako tabela i kolumna; a jeśli to rozwiązanie nie powiedzie się, jest rozpoznany jako typ danych alias.Domyślnie dziedziczą istniejących kolumn typu danych alias default, chyba że domyślna powiązano bezpośrednio do kolumna. Domyślnie nie może być powiązane tekst, ntext, obraz, varchar(max), nvarchar(max), varbinary(max), XML, timestamp, lub CLR kolumny typ zdefiniowany przez użytkownika, kolumna z właściwość IDENTITY, kolumna obliczana lub kolumny, która ma już ograniczenie domyślne.

    Uwaga

    object_name can contain brackets [] as delimited identifiers.Aby uzyskać więcej informacji zobaczIdentyfikatory rozdzielanego (aparat bazy danych).

  • [ @futureonly= ] 'futureonly_flag'
    Is used only when binding a default to an alias data type.futureonly_flag is varchar(15) with a default of NULL.Kiedy ten parametr jest zestaw do futureonly, istniejących kolumn tego typu danych nie może dziedziczyć nowe domyślne.Ten parametr nie jest nigdy używana podczas wiązania domyślnego do kolumna.Jeśli futureonly_flag ma wartość NULL, nowy domyślny jest związany z kolumn typu danych alias zawierające aktualnie nie domyślnego lub, którzy nie korzystają z istniejących domyślnego typu danych alias.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Remarks

Można użyć sp_bindefault powiązać nowe domyślne kolumna, chociaż preferowane jest używanie to domyślne ograniczenie lub do typu danych alias bez Rozpinanie istniejącej domyślnej.Stare domyślnym jest wyłączona.Nie można powiązać domyślny do SQL Server Systemowy typ danych lub zdefiniowany przez użytkownika typ danych CLR. Jeśli wartość domyślna nie jest zgodny z kolumna, do których użytkownik ma powiązane, SQL Server Database Engine Zwraca komunikat o błędzie przy próbie wstawić wartość domyślna nie wtedy, gdy powiąże go.

Istniejących kolumn typu danych alias dziedziczą nowego domyślnego, chyba, że każda domyślna jest związana bezpośrednio do nich lub futureonly_flag jest określony jako futureonly.Nowe kolumny Typ danych alias dziedziczą zawsze domyślnie.

Domyślnie powiązać z kolumną, powiązanych informacji jest dodawany do sys.Columns Służy do wyświetlania katalogu. Domyślnie są powiązane z typem danych alias, powiązanych informacji jest dodawany do sys.types Służy do wyświetlania katalogu.

Uprawnienia

Użytkownik musi własnej tabela lub być członkiem sysadmin Rola serwera lub db_owner and db_ddladmin stałe role bazy danych.

Przykłady

A.Wiązanie domyślne kolumna

Domyślny o nazwie today został zdefiniowany w bieżącej bazie danych przy użyciu domyślnego do CREATE DEFAULT, następujące powiązania przykład użyciu HireDate Kolumna Employee Tabela. Za każdym razem, gdy wiersz jest dodawany do Employee Tabela i dane dla HireDate Kolumna nie jest podany, w kolumnie pobiera wartość domyślną today.

USE master;
GO
EXEC sp_bindefault 'today', 'HumanResources.Employee.HireDate';

B.Wiązanie do typu danych alias domyślnego

Domyślny o nazwie def_ssn a typem danych alias o nazwie ssn już istnieje. W poniższym przykładzie wiąże domyślną def_ssn Aby ssn. Podczas tworzenia tabela wartością domyślną jest dziedziczona przez wszystkie kolumny, które są przypisane do typu danych alias ssn. Istniejących kolumn typu SSN również dziedziczyć domyślną def_ssn, unless futureonly określono futureonly_flag wartość, lub jeśli dana kolumna nie ma domyślnie związany z nim bezpośrednio.Ustawienia domyślne powiązane zawsze mają wyższy priorytet nad tymi powiązane z typami danych kolumn.

USE master;
GO
EXEC sp_bindefault 'def_ssn', 'ssn';

C.Za pomocą futureonly_flag

W poniższym przykładzie wiąże domyślną def_ssn Typ danych alias ssn. Ponieważ futureonly zostanie określona, nie istniejącej kolumny wpisz ssn problem dotyczy.

USE master;
GO
EXEC sp_bindefault 'def_ssn', 'ssn', 'futureonly';

D.Używane identyfikatory rozdzielanego

W poniższym przykładzie pokazano, za pomocą rozdzielanego identyfikatory [t.1], w object_name.

USE master;
GO
CREATE TABLE [t.1] (c1 int) 
-- Notice the period as part of the table name.
EXEC sp_bindefault 'default1', '[t.1].c1' 
-- The object contains two periods; 
-- the first is part of the table name, 
-- and the second distinguishes the table name from the column name.