sp_bindefault (Transact-SQL)sp_bindefault (Transact-SQL)

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Bindet einen Standard an eine Spalte oder einen Aliasdatentyp.Binds a default to a column or to an alias data type.

Wichtig

Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt.This feature will be removed in a future version of Microsoft SQL Server. Verwenden Sie dieses Feature nicht in einer neuen Entwicklungsarbeit, und ändern Sie Anwendungen, die dieses Feature verwenden, so schnell wie möglich.Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. Es wird empfohlen, dass Sie Default-Definitionen erstellen, mit dem DEFAULT-Schlüsselwort, der die ALTER TABLE oder CREATE TABLE Anweisungen stattdessen.We recommend that you create default definitions by using the DEFAULT keyword of the ALTER TABLE or CREATE TABLE statements instead.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

[ @defname = ] 'default' Ist der Name des Standards, der von CREATE DEFAULT erstellt wird.[ @defname = ] 'default' Is the name of the default that is created by CREATE DEFAULT. standardmäßige ist nvarchar(776) , hat keinen Standardwert.default is nvarchar(776), with no default.

[ @objname = ] 'object_name' Ist der Name der Tabelle und Spalte oder der Aliasdatentyp, ist der Standardwert gebunden werden soll.[ @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 ist nvarchar(776) hat keinen Standardwert.object_name is nvarchar(776) with no default. Object_name kann nicht definiert werden, mit der varchar(max) , nvarchar(max) , 'varbinary(max)' , Xml, oder CLR Benutzerdefinierte Typen.object_name cannot be defined with the varchar(max), nvarchar(max), varbinary(max), xml, or CLR user-defined types.

Wenn Object_name ist ein einteiliger Name, wird er als einen Aliasdatentyp aufgelöst.If object_name is a one-part name, it is resolved as an alias data type. Wenn es sich um einen - oder dreiteiliger Namen handelt, wird es zunächst als Tabelle und Spalte aufgelöst wurde, andernfalls und wenn die Auflösung fehlschlägt, wird es als einen Aliasdatentyp aufgelöst.If it is a two- or three-part name, it is first resolved as a table and column; and if this resolution fails, it is resolved as an alias data type. Vorhandene Spalten des aliasdatentyps erben standardmäßig Standard, es sei denn, Sie direkt auf die Spalte ein Standardwert gebunden wurde.By default, existing columns of the alias data type inherit default, unless a default has been bound directly to the column. Ein Standard kann nicht gebunden werden, um eine Text, Ntext, Image, varchar(max) , nvarchar(max) , 'varbinary(max)' , Xml, Zeitstempel, oder CLR UDT-Spalte, eine Spalte mit der IDENTITY-Eigenschaft, eine berechnete Spalte oder eine Spalte, die besitzt bereits eine DEFAULT-Einschränkung.A default cannot be bound to a text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xml, timestamp, or CLR user-defined type column, a column with the IDENTITY property, a computed column, or a column that already has a DEFAULT constraint.

Hinweis

Object_name können Klammern enthalten [] als Begrenzungsbezeichner.object_name can contain brackets [] as delimited identifiers. Weitere Informationen finden Sie unter Datenbankbezeichner.For more information, see Database Identifiers.

[ @futureonly = ] 'futureonly_flag' Wird nur beim Binden eines Standards an einen Aliasdatentyp verwendet.[ @futureonly = ] 'futureonly_flag' Is used only when binding a default to an alias data type. Futureonly_flag ist varchar(15) hat den Standardwert NULL.futureonly_flag is varchar(15) with a default of NULL. Wenn dieser Parameter auf festgelegt ist Futureonly, vorhandene Spalten dieses Datentyps können nicht den neuen Standard nicht erben.When this parameter is set to futureonly, existing columns of that data type cannot inherit the new default. Dieser Parameter wird nie beim Binden eines Standards an eine Spalte verwendet.This parameter is never used when binding a default to a column. Wenn Futureonly_flag NULL ist, wird der neue Standard an alle Spalten des aliasdatentyps, die aktuell keinen Standard aufweisen oder die den vorhandenen Standard des aliasdatentyps, gebunden.If futureonly_flag is NULL, the new default is bound to any columns of the alias data type that currently have no default or that are using the existing default of the alias data type.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

HinweiseRemarks

Sie können Sp_bindefault um einen neuen Standardwert zu einer Spalte binden, obwohl empfohlen wird, verwenden die DEFAULT-Einschränkung oder einen Aliasdatentyp, ohne die Bindung eines vorhandenen Standardwerts.You can use sp_bindefault to bind a new default to a column, although using the DEFAULT constraint is preferred, or to an alias data type without unbinding an existing default. Der alte Standard wird überschrieben.The old default is overridden. Sie können einen Standard nicht an einen SQL ServerSQL Server-Systemdatentyp oder an einen CLR-benutzerdefinierten Typ binden.You cannot bind a default to a SQL ServerSQL Server system data type or a CLR user-defined type. Ist der Standard nicht kompatibel mit der Spalte, an die er gebunden wurde, gibt SQL Server-Datenbank-EngineSQL Server Database Engine eine Fehlermeldung zurück, wenn der Standardwert eingefügt werden soll (nicht beim Binden).If the default is not compatible with the column to which you have bound it, the SQL Server-Datenbank-EngineSQL Server Database Engine returns an error message when it tries to insert the default value, not when you bind it.

Vorhandene Spalten des aliasdatentyps erben den neuen Standard, es sei denn, ein Standard, direkt an diese gebunden ist oder Futureonly_flag angegeben ist, als Futureonly.Existing columns of the alias data type inherit the new default, unless either a default is bound directly to them or futureonly_flag is specified as futureonly. Neue Spalten des Aliasdatentyps erben immer den Standard.New columns of the alias data type always inherit the default.

Wenn Sie den Standardwert an eine Spalte binden, zugehörige Informationen hinzugefügt die sys.columns -Katalogsicht angezeigt.When you bind a default to a column, related information is added to the sys.columns catalog view. Wenn Sie den Standardwert an einen Aliasdatentyp binden, zugehörige Informationen hinzugefügt die sys.types -Katalogsicht angezeigt.When you bind a default to an alias data type, related information is added to the sys.types catalog view.

BerechtigungenPermissions

Benutzer muss Besitzer der Tabelle oder ein Mitglied der Sysadmin festen Serverrolle oder die Db_owner und Db_ddladmin festen Datenbankrollen.User must own the table, or be a member of the sysadmin fixed server role, or the db_owner and db_ddladmin fixed database roles.

BeispieleExamples

A.A. Bindet eines Standardwerts an eine SpalteBinding a default to a column

In der aktuellen Datenbank wurde mit CREATE DEFAULT ein Standard mit dem Namen today definiert. Im folgenden Beispiel wird der Standard an die HireDate-Spalte der Employee-Tabelle gebunden.A default named today has been defined in the current database by using CREATE DEFAULT, the following example binds the default to the HireDate column of the Employee table. Wird zur Employee-Tabelle eine Zeile hinzugefügt und werden für die HireDate-Spalte keine Daten angegeben, erhält die Spalte den Wert des Standards today.Whenever a row is added to the Employee table and data for the HireDate column is not supplied, the column gets the value of the default today.

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

B.B. Binden eines Standards an einen AliasdatentypBinding a default to an alias data type

Ein Standard namens def_ssn und ein Aliasdatentyp namens ssn sind bereits vorhanden.A default named def_ssn and an alias data type named ssn already exists. Im folgenden Beispiel wird der Standard def_ssn an den Typ ssn gebunden.The following example binds the default def_ssn to ssn. Wenn eine Tabelle erstellt wird, wird der Standard von allen Spalten geerbt, denen der Aliasdatentyp ssn zugewiesen ist.When a table is created, the default is inherited by all columns that are assigned the alias data type ssn. Vorhandene Spalten des Typs "ssn" erben ebenfalls den Standard Def_ssn, es sei denn, Futureonly für angegeben Futureonly_flag Wert. oder, wenn die Spalte einen direkt gebundenen Standard besitzt.Existing columns of type ssn also inherit the default def_ssn, unless futureonly is specified for futureonly_flag value, or unless the column has a default bound directly to it. An Spalten gebundene Standards haben stets Vorrang vor den an Datentypen gebundenen Standards.Defaults bound to columns always take precedence over those bound to data types.

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

C.C. Verwenden von futureonly_flagUsing the futureonly_flag

Im folgenden Beispiel bindet der Standard def_ssn an den Aliasdatentyp ssn.The following example binds the default def_ssn to the alias data type ssn. Da Futureonly angegeben wird, ohne vorhandenen Spalten des Typs ssn betroffen sind.Because futureonly is specified, no existing columns of type ssn are affected.

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

D.D. Verwendung von begrenzungsbezeichnernUsing delimited identifiers

Das folgende Beispiel zeigt die Verwendung von begrenzungsbezeichnern, [t.1]im Object_name.The following example shows using delimited identifiers, [t.1], in 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.  

Siehe auchSee Also

Datenbank-Engine gespeicherten Prozeduren (Transact-SQL) Database Engine Stored Procedures (Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
DROP DEFAULT (Transact-SQL) DROP DEFAULT (Transact-SQL)
sp_unbindefault (Transact-SQL) sp_unbindefault (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)System Stored Procedures (Transact-SQL)