91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-10-13 11:49:28 來源:億速云 閱讀:182 作者:柒染 欄目:數據庫

本篇文章為大家展示了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中具有默認值的所有字段的語句有哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄浪县| 清徐县| 历史| 平舆县| 张北县| 温州市| 饶河县| 呼玛县| 区。| 丹棱县| 呼伦贝尔市| 宣化县| 钦州市| 新乐市| 太原市| 子洲县| 南皮县| 平阳县| 诸城市| 斗六市| 昌黎县| 宿松县| 柳河县| 集安市| 郓城县| 南漳县| 冀州市| 大城县| 彩票| 宁蒗| 海原县| 富宁县| 上思县| 江津市| 永安市| 吕梁市| 高淳县| 肇源县| 南汇区| 汨罗市| 民丰县|