Diğer iki yanıt hakkındaki yorumlarınız, "satır içi" oluştururken varsayılan bir kısıtlamayı adlandıramayacağınızı iddia ediyor. Her iki cevap da, aslında, satır içinde oluştururken kısıtlama için bir ad verebileceğinizi gösterir. Sonuçları gösteren üçüncü bir örnek ekleyeceğim.
IF OBJECT_ID('dbo.Test') IS NOT NULL
DROP TABLE dbo.Test;
CREATE TABLE dbo.Test
(
TestID int NOT NULL
CONSTRAINT PK_Test --here I'm naming the primary key constraint!
PRIMARY KEY CLUSTERED
IDENTITY(1,1)
, SomeData varchar(42) NOT NULL
CONSTRAINT DF_Test_SomeData --this is the name of the default constraint!
DEFAULT ('Carrie Fisher')
);
INSERT INTO dbo.Test DEFAULT VALUES;
Bu, varsayılan kısıtlamanın adını gösterir DF_Test_SomeData
:
SELECT TableName = t.name
, ConstraintName = dc.name
FROM sys.default_constraints dc
INNER JOIN sys.tables t ON dc.parent_object_id = t.object_id;
Sonuçlar:
SSMS'deki nesne gezginine bakıldığında adı gösterir:
CREATE TABLE ...
. Çok temel bir sözdizimi hatası var.