SQLServer中具有默認(rèn)值的所有字段的語句有哪些

本篇文章為大家展示了SQL Server中具有默認(rèn)值的所有字段的語句有哪些,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是專業(yè)的南漳網(wǎng)站建設(shè)公司,南漳接單;提供網(wǎng)站制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行南漳網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

專家解答   通過查詢?nèi)魏螖?shù)據(jù)庫中的三個(gè)系統(tǒng)表,你可以獲得每個(gè)表的每一個(gè)字段的默認(rèn)值。下面是這個(gè)核心查詢。它返回分配給當(dāng)前數(shù)據(jù)庫中每個(gè)用戶表的默認(rèn)值。這個(gè)查詢?cè)赟QL 2000和SQL 2005中都是兼容的。    Quote:復(fù)制代碼 代碼如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U'   ORDER BY SO.[name], SC.colid

sysobjects 為我們提供了表元數(shù)據(jù)。在這個(gè)例子中,我們只對(duì)表名稱感興趣。syscolumns 表存儲(chǔ)與每個(gè)表的各個(gè)字段相關(guān)聯(lián)的元數(shù)據(jù)。在這個(gè)例子中,我們只需要字段名稱。最后,默認(rèn)值元數(shù)據(jù)由syscomments表提供。   對(duì)Northwind數(shù)據(jù)庫運(yùn)行這個(gè)查詢生成下面的結(jié)果(為了簡(jiǎn)短,省略了一些記錄)。注意,因?yàn)長(zhǎng)EFT JOIN到syscomments表所以它將返回NULL默認(rèn)值。 現(xiàn)在我在想這個(gè)很好的基本查詢版本有什么選擇。。。   選擇1:搜索特別的默認(rèn)值   通過編輯WHERE條件語句,我們可以在所有的表中查看特別的默認(rèn)值。    Quote: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U' AND SM.TEXT = '(0)'   ORDER BY SO.[name], SC.colid 選擇2:只返回具有默認(rèn)值字段的信息   修改核心查詢的WHERE條件語句來忽略syscomments.text表中的NULL值,這個(gè)技巧如下所示:    Quote:復(fù)制代碼 代碼如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   LEFT JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U' AND SM.TEXT IS NOT NULL   ORDER BY SO.[name], SC.colid

但是,將FROM條件從句中的JOIN從一個(gè)LEFT JOIN改為一個(gè)INNER JOIN會(huì)提供優(yōu)化:    Quote:復(fù)制代碼 代碼如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value"   FROM dbo.sysobjects SO INNER JOIN dbo.syscolumns SC ON SO.id = SC.id   INNER JOIN dbo.syscomments SM ON SC.cdefault = SM.id   WHERE SO.xtype = 'U'   ORDER BY SO.[name], SC.colid

其實(shí)還有另一個(gè)選擇,利用SQL 2005中的系統(tǒng)目錄視圖。前面的查詢給我提供了這時(shí)所需要的信息,并在SQL 2000和SQL 2005中都可以使用,在SQL2000實(shí)例中可以挖掘出與這個(gè)默認(rèn)值(實(shí)際上是一個(gè)默認(rèn)約束)關(guān)聯(lián)的額外元數(shù)據(jù)。通過將這個(gè)查詢特定在系統(tǒng)目錄視圖上,我們可以獲得在之前的查詢中沒有顯示出來的額外信息。    Quote:復(fù)制代碼 代碼如下: SELECT ST.[name] AS "Table Name", SC.[name] AS "Column Name", SD.definition AS "Default Value", SD.[name] AS "Constraint Name"   FROM sys.tables ST INNER JOIN sys.syscolumns SC ON ST.[object_id] = SC.[id]   INNER JOIN sys.default_constraints SD ON ST.[object_id] = SD.[parent_object_id] AND SC.colid = SD.parent_column_id   ORDER BY ST.[name], SC.colid

所以記住,就因?yàn)槟惚桓嬷獩]有更好的方法,依靠你作為一個(gè)數(shù)據(jù)庫管理員的本能來鉆研。你永遠(yuǎn)不會(huì)知道你可能會(huì)得到些什么。

上述內(nèi)容就是SQL Server中具有默認(rèn)值的所有字段的語句有哪些,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:SQLServer中具有默認(rèn)值的所有字段的語句有哪些
文章來源:http://www.muchs.cn/article4/ihpeie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、微信公眾號(hào)網(wǎng)站內(nèi)鏈、電子商務(wù)、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)