查詢Sql Server 中,資料庫名稱、資料表名稱、欄位名稱.

來源:互聯網
上載者:User

 查詢資料庫(Databases)名稱: 

SELECT
name FROM master.dbo.sysdatabases
WHERE status
<> 512

查詢資料表(Tables)名稱:

SELECT
name FROM dbo.sysobjects
WHERE OBJECTPROPERTY(id,N'IsUserTable')
= 1 AND
name <> 'dtproperties'

查詢帶Schema 的資料表(Tables)名稱:
  SELECT b.name
+ '.'
+ a.name AS
name FROM sysobjects a
INNER JOIN
sys.schemas b ON a.uid=b.schema_id
WHERE OBJECTPROPERTY(id,N'IsUserTable')
= 1 AND a.name
<> 'dtproperties'

   說明:預設情況下Schema是dbo,資料表的名稱應該是dbo.TableName.但是有的資料表指定了其他的Schema.比如AdventureWorks 中的表HumanResources.Employee;Production.Product 等等.
查詢資料表(Tables)中的欄位(Columns)名稱:
    SELECT
* FROM dbo.syscolumns
WHERE id=OBJECT_ID(N'[Production].[Product]')
ORDER BY colid

有的資料庫敏感大小寫,比如AdventureWorks.所以千萬要注意,表名稱,Schemas名稱要寫正確.我就是在我的一個程式裡面將dbo.sysobjects寫成dbo.Sysobjects(首字母大寫)而發生了錯誤.
PS:有關列舉區域網路內可用資料庫伺服器名稱的方法請參考我的另一篇日誌:

2010/05/28 added:
今天在公司的網路上DEBUG. 串連到一台SQL Server 2000.載入表名稱的時候出錯了.後來比對自己電腦上的SQL Server 2005.發現 2000沒有sys.schemas 這個視圖(View).(貌似連Schema的概念都沒有.抱歉,我在資料庫上面還是比較小白的.)後面嘗試多次,由於SQL Server 2005 的sysobjects中並沒有儲存諸如sys.schemas之類的視圖.多次嘗試之下,醜陋地完成了相容性問題:
                BEGIN
                IF EXISTS (SELECT uid FROM sysobjects where name='sysobjects')
                    SELECT b.name+'.'+a.name FROM sysobjects a INNER JOIN sysusers b ON a.uid=b.uid WHERE OBJECTPROPERTY(a.id,N'IsUserTable') = 1 AND a.name <> 'dtproperties'
                ELSE
                    SELECT b.name+'.'+a.name FROM sysobjects a INNER JOIN sys.schemas b ON a.uid=b.schema_id WHERE OBJECTPROPERTY(a.id,N'IsUserTable') = 1 AND a.name <> 'dtproperties'
                END

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.