Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Alapértelmezett eszközt egy oszlophoz vagy alias adattípushoz köt.
Fontos
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Javasoljuk, hogy alapértelmezett definíciókat az ALTER TABLE DEFAULT kulcsszóval, vagy a CREATE TABLE utasításokkal hozz létre.
Transact-SQL szintaxis konvenciók
Szemantika
sp_bindefault
[ @defname = ] N'defname'
, [ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Arguments
[ @defname = ] N'defname'
Az alapértelmezett név, amelyet .CREATE DEFAULT
@defnamenvarchar(776), alapértelmezett nélkül.
[ @objname = ] N'objname'
A tábla és oszlop neve, vagy az alias adattípus, amelyhez az alapértelmezett adat kötött. @objnamenvarchar(776), alapértelmezett nélkül. @objname nem definiálható varchar(max), nvarchar(max), varbinary(max), xml vagy CLR felhasználó-definiált típusokkal.
Ha @objname egyrészes név, akkor alias adattípusként oldódik meg. Ha két- vagy háromrészes név, először táblázatként és oszlopként jelenik meg; és ha ez a felbontás nem működik, akkor alias adattípusként oldódik meg. Alapértelmezés szerint az alias adattípus meglévő oszlopai örökölnek @defname, kivéve, ha egy alapértelmezett közvetlenül az oszlophoz kötött. Egy alapértelmezett nem köthető szöveghez,ntexthez, image-hez, varchar(max), nvarchar(max), varbinary(max),xml, timestamp vagy CLR felhasználó által definiált típusú oszlophoz, egy tulajdonsággal IDENTITY rendelkező oszlophoz, egy kiszámított oszlophoz, vagy egy olyan oszlophoz, amelynek már van korlátozása DEFAULT .
@objname tartalmazhatnak zárójeleket ([ és ]) departált azonosítóként. További információ: Adatbázis-azonosítók.
[ @futureonly = ] 'csak jövőben'
Csak akkor használják, amikor egy alapértelmezett alias adattípushoz kötve.
@futureonlya varchar(15), alapértelmezett értéke NULL. Ha ez a paraméter futureonly, az adott adattípus meglévő oszlopai nem örökölhetik az új alapértelmezet. Ezt a paramétert soha nem használják, amikor egy alapértelmezett oszlophoz kötnek. Ha @futureonlyNULL, az új alapértelmezett az alias adattípus bármely oszlopához van kötve, amelyeknek jelenleg nincs alapértelmezése, vagy amelyek az alias adattípus meglévő alapértelmezettjét használják.
Kódértékek visszaadása
0 (sikeres) vagy 1 (hiba).
Megjegyzések
Használhatod sp_bindefault új alapértelmezett kötésre egy oszlophoz, bár a DEFAULT korlátozás használata előnyösebb, vagy alias adattípusra anélkül, hogy egy meglévő alapértelmezést bonnod fel. A régi alapértelmezett szabály felülírva. Nem lehet alapértelmezett eszközt kötni SQL Server rendszeradattípusra vagy CLR felhasználódefiniált típusra. Ha az alapértelmezett nem kompatibilis azzal az oszloppal, amelyhez kötötted, az SQL Server Database Engine akkor ad hibaüzenetet, amikor megpróbálja beadni az alapértelmezett értéket, nem pedig a kötéskor.
Az alias adattípus meglévő oszlopai öröklik az új alapértelmezet, kivéve, ha vagy egy alapértelmezett közvetlenül hozzájuk kötött, vagy csak a jövő csak úgy van megadva.futureonly Az alias adattípus új oszlopai mindig öröklik az alapértelmezet.
Amikor egy alapértelmezett oszlopot kötünk be, kapcsolódó információk kerülnek hozzá a sys.columns katalógusnézethez. Amikor egy alapértelmezett adattípust kötsz alias adattípusra, kapcsolódó információk kerülnek hozzá a sys.types katalógusnézethez.
Permissions
A felhasználónak kell birtokolnia a táblát, vagy tagnak kell lennie a rendszergazdálkodó fix szerver szerepének, vagy a db_owner és db_ddladmin fix adatbázis szerepeknek.
Példák
A. Kötözz egy alapértelmezett oszlopot
Az alapértelmezett nevet today a jelenlegi adatbázisban CREATE DEFAULTa használatával definiálják. A következő példa az alapértelmezett opciót a tábla oszlopához HireDateEmployee köti. Amikor egy sort hozzáadnak a Employee táblához, és az oszlop adatát HireDate nem adják meg, az oszlop megkapja az alapértelmezett todayértéket .
USE master;
GO
EXECUTE sp_bindefault 'today', 'HumanResources.Employee.HireDate';
B. Bind egy alapértelmezett alias adattípushoz
Már létezik egy alapértelmezett nevű def_ssn és egy alias adattípus.ssn A következő példa az alapértelmezetthez def_ssn köti .ssn Amikor egy tábla létrejött, az alapértelmezett értéket öröklik az összes oszlop, amelyhez az alias adattípus ssnvonatkozik. A meglévő típusú ssn oszlopok is öröklik az alapértelmezett def_ssn, hacsak futureonly nem van megadva a @futureonly értékre, vagy az oszlopnak van alapértelmezett köteléke közvetlenül hozzá. Az oszlopokhoz kötött alapértelmezett beállítások mindig elsőbbséget élveznek az adattípusokhoz kötött alapértelmezett értékekkel szemben.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn';
C. Használd az futureonly opciót
A következő példa az alapértelmezett def_ssn alias adattípushoz ssnköti . Mivel futureonly a megadott állapotban nincs meglévő oszlop ssn érintett.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn', 'futureonly';
D. Használjon definiált azonosítókat
A következő példa a departiált azonosítók használatát mutatja [t.1]@objname-ben.
USE master;
GO
CREATE TABLE [t.1] (c1 INT);
-- Notice the period as part of the table name.
EXECUTE 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.