久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL Server中具有默認值的所有字段的語句有哪些

140次閱讀
沒有評論

共計 2081 個字符,預計需要花費 6 分鐘才能閱讀完成。

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

專家解答 通過查詢任何數據庫中的三個系統表,你可以獲得每個表的每一個字段的默認值。下面是這個核心查詢。它返回分配給當前數據庫中每個用戶表的默認值。這個查詢在 SQL 2000 和 SQL 2005 中都是兼容的。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 ORDER BY SO.[name], SC.colid

sysobjects 為我們提供了表元數據。在這個例子中,我們只對表名稱感興趣。syscolumns 表存儲與每個表的各個字段相關聯的元數據。在這個例子中,我們只需要字段名稱。最后,默認值元數據由 syscomments 表提供。對 Northwind 數據庫運行這個查詢生成下面的結果(為了簡短,省略了一些記錄)。注意,因為 LEFT JOIN 到 syscomments 表所以它將返回 NULL 默認值。現在我在想這個很好的基本查詢版本有什么選擇。。。選擇 1:搜索特別的默認值 通過編輯 WHERE 條件語句,我們可以在所有的表中查看特別的默認值。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:只返回具有默認值字段的信息 修改核心查詢的 WHERE 條件語句來忽略 syscomments.text 表中的 NULL 值,這個技巧如下所示: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 IS NOT NULL ORDER BY SO.[name], SC.colid

但是,將 FROM 條件從句中的 JOIN 從一個 LEFT JOIN 改為一個 INNER JOIN 會提供優化: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 INNER JOIN dbo.syscomments SM ON SC.cdefault = SM.id WHERE SO.xtype = U ORDER BY SO.[name], SC.colid

其實還有另一個選擇,利用 SQL 2005 中的系統目錄視圖。前面的查詢給我提供了這時所需要的信息,并在 SQL 2000 和 SQL 2005 中都可以使用,在 SQL2000 實例中可以挖掘出與這個默認值 (實際上是一個默認約束) 關聯的額外元數據。通過將這個查詢特定在系統目錄視圖上,我們可以獲得在之前的查詢中沒有顯示出來的額外信息。Quote: 復制代碼 代碼如下:
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

所以記住,就因為你被告知沒有更好的方法,依靠你作為一個數據庫管理員的本能來鉆研。你永遠不會知道你可能會得到些什么。

上述內容就是 SQL Server 中具有默認值的所有字段的語句有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-28發表,共計2081字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 巴林右旗| 阳东县| 进贤县| 唐海县| 和顺县| 霍城县| 筠连县| 会昌县| 邹平县| 青铜峡市| 山西省| 丹阳市| 玉溪市| 房产| 洛扎县| 拜城县| 二连浩特市| 东乌珠穆沁旗| 全南县| 宜丰县| 五常市| 隆回县| 沂水县| 和龙市| 莫力| 镇巴县| 蒙山县| 卢氏县| 铁岭市| 咸丰县| 车险| 黔江区| 德阳市| 白山市| 中山市| 桓台县| 巩义市| 洮南市| 苗栗市| 巴青县| 新龙县|