本文主要介紹sql server字段的默認(rèn)值(sqlserver列出所有表),下面一起看看sql server字段的默認(rèn)值(sqlserver列出所有表)相關(guān)資訊。
專(zhuān)家解答通過(guò)查詢(xún)?nèi)我鈹?shù)據(jù)庫(kù)中的三個(gè)系統(tǒng)表,可以得到每個(gè)表中每個(gè)字段的默認(rèn)值。下面是核心查詢(xún)。它返回分配給當(dāng)前數(shù)據(jù)庫(kù)中每個(gè)用戶(hù)表的默認(rèn)值。此查詢(xún)?cè)趕ql 2000和sql 2005中兼容。u3000 u3000參考:復(fù)制代碼代碼如下:選擇so.name表名,添加dbo.syscolumns sc so.id = sc.id連接so.xtype = u中的dbo.sysobjects sm到sc.cdefault = sm.id,以此類(lèi)推。{name},sc.colid在我們提供的數(shù)據(jù)表中。在這個(gè)例子中,我們只對(duì)表的名稱(chēng)感興趣,列的表存儲(chǔ)元數(shù)據(jù)與每個(gè)表的每個(gè)字段相關(guān)聯(lián)。在這個(gè)例子中,我們只需要。最后,默認(rèn)值由syscomments元數(shù)據(jù)表提供。在northwind數(shù)據(jù)庫(kù)中運(yùn)行該查詢(xún)會(huì)產(chǎn)生以下結(jié)果(簡(jiǎn)短,省略了一些記錄)。請(qǐng)注意,因?yàn)樽髠?cè)連接到syscomments表,所以它將返回默認(rèn)值null。現(xiàn)在我正在考慮這個(gè)非常好的基本查詢(xún)版本。選項(xiàng)1:搜索特殊默認(rèn)值通過(guò)編輯where條件語(yǔ)句,我們可以查看所有表中的特殊默認(rèn)值。u3000 u3000引用:選擇so.name表名并添加dbo.syscolumns sc so.id = sc.id將dbo.sysobjects sm連接到so.xtype = u 而sm.text =(0)。{name},sc.colid選項(xiàng)2:僅返回syscomments.text表,該表忽略由默認(rèn)字段信息修改的核心查詢(xún)的where條件語(yǔ)句中的空值。如下圖:u3000 u3000引用:復(fù)制代碼如下:選擇so.name表名,在so.xtype = u 和sm.text不為空。{name},sc.colid但是,從左連接到內(nèi)連接的條件子句的連接優(yōu)化將提供一個(gè)優(yōu)化:u3000 u3000。引用:復(fù)制代碼如下:從dbo.sysobjects中選擇so.name表名,在so.xtype = u中添加dbo.syscolumns sc so.id = sc.id以聯(lián)接dbo.syscomments sm到sc.cdefault = sm.id,以此類(lèi)推。{name},sc.colid事實(shí)上,在sql 2005中還有另一個(gè)利用系統(tǒng)目錄視圖的選項(xiàng)。前面的查詢(xún)提供了當(dāng)時(shí)需要的信息,可以在sql 2000和sql 2005中使用。在sql2000的情況下,可以挖掘與默認(rèn)值(實(shí)際上是默認(rèn)約束)相關(guān)的附加元數(shù)據(jù)。通過(guò)對(duì)系統(tǒng)目錄視圖的查詢(xún),我們可以獲得更多的信息,這些信息在前面的查詢(xún)中沒(méi)有顯示出來(lái)。u3000 u3000引用:復(fù)制代碼如下:選擇{name}作為表名,添加sys . sys columns sc st { object _ id } = sc { id }在內(nèi)部聯(lián)接sys . default _ constraints sd st { object _ id } = { }和sd。parent _ object _ id sc.colid = sd按st. {name},sc列出的parent _ column _ id。所以記住,這是因?yàn)槟惚桓嬷獩](méi)有更好的方法來(lái)依靠你的直覺(jué)。作為一個(gè)數(shù)據(jù)庫(kù)管理員,你永遠(yuǎn)不知道你會(huì)得到什么。
了解更多sql server字段的默認(rèn)值(sqlserver列出所有表)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。