婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 列出SQL Server中具有默認值的所有字段的語句

列出SQL Server中具有默認值的所有字段的語句

熱門標簽:溫州語音外呼系統排名 四川穩定外呼系統公司 怎么在高德地圖標注多個點 AI智能云呼電話機器人怎么注冊 沈陽外呼系統有效果嗎 福州外呼系統招商 電話機器人接口是什么樣的 百度地圖標注信息怎么修改 商家地圖標注圖片
專家解答
  通過查詢任何數據庫中的三個系統表,你可以獲得每個表的每一個字段的默認值。下面是這個核心查詢。它返回分配給當前數據庫中每個用戶表的默認值。這個查詢在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
按此在新窗口打開圖片
所以記住,就因為你被告知沒有更好的方法,依靠你作為一個數據庫管理員的本能來鉆研。你永遠不會知道你可能會得到些什么。
您可能感興趣的文章:
  • input之怎么清除默認值
  • 用sql設置access的默認值
  • MySQL表字段設置默認值(圖文教程及注意細節)

標簽:汕尾 邯鄲 寶雞 來賓 無錫 七臺河 營口 西寧

巨人網絡通訊聲明:本文標題《列出SQL Server中具有默認值的所有字段的語句》,本文關鍵詞  列出,SQL,Server,中,具有,默認值,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《列出SQL Server中具有默認值的所有字段的語句》相關的同類信息!
  • 本頁收集關于列出SQL Server中具有默認值的所有字段的語句的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 合山市| 东城区| 周宁县| 兴和县| 宝丰县| 万山特区| 美姑县| 鹿泉市| 屯留县| 疏勒县| 孟津县| 江西省| 永修县| 镇江市| 四会市| 宁乡县| 昌平区| 安西县| 北川| 钦州市| 本溪市| 湘潭县| 都江堰市| 南通市| 登封市| 曲阳县| 迁西县| 海淀区| 双鸭山市| 双江| 阳春市| 祁门县| 兖州市| 疏附县| 鸡西市| 南皮县| 正蓝旗| 滦平县| 曲松县| 陵川县| 思茅市|