當你為乙個表定義約束時,給約束命名是乙個好習慣。另外,sql server會為約束建立系統自動生成的名稱。當在沒有給約束命名的情況下,生成資料定義語言(ddl)(當ddl應用在幾個資料庫上時),那麼系統生產約束名一般是不一樣的。
在為資料庫生成計畫後,再生成詳細的約束列表,與乙個詳細計畫構造的合法約束列表進行對比,是乙個很好的習慣。當資料庫相當大時,這樣做是非常有益的。
下面的指令碼演示了命名
約束、不命名
約束及系統自動生成的約束名之間的區別,三者使用了同樣的表,只不過每次都是重新建立的:
create table parent
(pkey1 int not null
constraint pk_parent primary key (pkey1))
go create table constraintname
(pkey int not null
constraint pk_cnstnm primary key,
parent_pkey1 int not null,
col1 int null
constraint ck_cnstnm_col1 check (col1 in ( 'a','b' ) )
constraint df_cnstnm_col1 default 1,
constraint fk_parent_cnstnm foreign key (parent_pkey1)
references parent (pkey1))go
exec sp_helpconstraint constraintname
godrop table constraintname
gocreate table constraintname
(pkey int not null
primary key,
parent_pkey1 int not null
foreign key (parent_pkey1) references parent(pkey1),
col1 int null
check (col1 in ( 'a','b' ) )
default 1)go
exec sp_helpconstraint constraintname
godrop table constraintname
gocreate table constraintname
(pkey int not null
primary key,
parent_pkey1 int not null
foreign key (parent_pkey1) references parent(pkey1),
col1 int null
check (col1 in ( 'a','b' ) )
default 1)go
exec sp_helpconstraint constraintname
godrop table constraintname
godrop table parent
go
差分約束系統專題 對差分約束系統的理解
具體能解決的問題 求最長路,最短路,或者判斷解是否存在。在建邊的時候 一般是給你區間減法的關係,或者是這個點到另乙個點的關係。如果給你的關係是除法的話,我們可以通過使用兩邊同時取log的方式,將除法變成兩個式子的減法,這樣就轉換成了減法的建邊。判斷最優解的時候 一般是判斷是否有負環或者正環,但是乙個...
vivado的pll時鐘約束的重新命名
vivado的pll約束 重新命名 主要是下面這三句話 在vivado中pll會自動約束,一般約束的名字即為pll輸出到bufg i線路的名字 即約束語句如下 create generated clock name clk out1 my pll get pins u my pll inst pll...
Xcode之修改系統生成的注釋模板
在使用xcode建立工程或者新建類的時候,頂部都會有一些xcode幫我們生成的注釋 比如上面這一段,但有時候我們想在這部分注釋裡面新增一些內容,比如自己的部落格位址,github位址,公司資訊等等.特別是想開源一些工具或者自己寫一些框架的時候。這時候我們總不能乙個乙個檔案的去改吧,太繁瑣了。其實xc...