???這段時間好不容易找著一份臨時工,工作難找,只有苦干了。由於現在的項目需要通過VPN來連接遠程的網絡,工作中經常需要通過遠程桌面的方式來查看遠程主機上的SQLServer系統的庫/表及數據集的特征和結構,但是同時連接的數量卻是有限,沒有辦法只能自行使用Select語句以獲取自己所需的資料了。
??????日常的需求是:
??????1.知道該DBMS上存在有哪些數據庫
??????2.知道具體的庫上存在有哪些用戶表
??????3.知道表的字段結構,類型,寬度以及Select順序
??????4.獲取表中的特征數據
??????而要從SQLServer的DBMS中獲取以上資料非常容易,只要具有權限,通過簡單的SQL語句即可實現。
??????1.獲取DBMS上存在有哪些數據庫
??????2.獲取具體的庫上存在有哪些用戶表
??????3.獲取表的字段結構,類型,寬度以及Select順序
?????????[ddmDataBaseName]:數據庫名稱
?????????[ddmTableName]:表名稱
??????4.獲取表的特征數據集
?????????通過使用 3 + 4 的組合可以很容易地拼裝出一張表格出來,以便在日常工作中使用。
??????由于現在工作的系統是 繁體系統,上班時又封網,搞到文章中顯得簡繁一體了,呵呵。
??????日常的需求是:
??????1.知道該DBMS上存在有哪些數據庫
??????2.知道具體的庫上存在有哪些用戶表
??????3.知道表的字段結構,類型,寬度以及Select順序
??????4.獲取表中的特征數據
??????而要從SQLServer的DBMS中獲取以上資料非常容易,只要具有權限,通過簡單的SQL語句即可實現。
??????1.獲取DBMS上存在有哪些數據庫
select
????????name,
????????dbid
????from
????????master.dbo.sysdatabases
????WHERE
????????name?not?in?('master','tempdb','model','msdb')
????????name,
????????dbid
????from
????????master.dbo.sysdatabases
????WHERE
????????name?not?in?('master','tempdb','model','msdb')
??????2.獲取具體的庫上存在有哪些用戶表
select
????????name,
????????id
????from
????????[ddmDataBaseName].dbo.sysobjects
????where
????????xtype?='U'
?????????這條SQL語句需要傳遞一個參數(數據庫的名稱)以替換 [ddmDataBaseName] 參數。????????name,
????????id
????from
????????[ddmDataBaseName].dbo.sysobjects
????where
????????xtype?='U'
??????3.獲取表的字段結構,類型,寬度以及Select順序
select
????????col.name?colName,
????????type_Name(col.xtype)?colType,
????????col.length?colWidth,
????????case?isnullable?when?1?then?'允許'?else?'禁止'?end??nullable
????from
????????[ddmDataBaseName].dbo.syscolumns?col?join?[ddmDataBaseName].dbo.sysobjects?tab?on?col.id?=?tab.id
????where
????????tab.xtype?='U'
????????and?tab.name='[ddmTableName]'
????order?by
????????tab.id,
????????col.colorder
?????????同樣的,這條SQL語句需要傳遞兩個參數:????????col.name?colName,
????????type_Name(col.xtype)?colType,
????????col.length?colWidth,
????????case?isnullable?when?1?then?'允許'?else?'禁止'?end??nullable
????from
????????[ddmDataBaseName].dbo.syscolumns?col?join?[ddmDataBaseName].dbo.sysobjects?tab?on?col.id?=?tab.id
????where
????????tab.xtype?='U'
????????and?tab.name='[ddmTableName]'
????order?by
????????tab.id,
????????col.colorder
?????????[ddmDataBaseName]:數據庫名稱
?????????[ddmTableName]:表名稱
??????4.獲取表的特征數據集
select
????????top?200?*
????from
????????[ddmDataBaseName].dbo.[ddmTableName]
????Order?by
????????NewID()
?????????由于表的記錄條數可能會很大,通常并不需要全部Select出來,因此使用了 Top 200 的關鍵字,而為了能夠隨機抽取數據,這里使用了 Order by NewID()?。????????top?200?*
????from
????????[ddmDataBaseName].dbo.[ddmTableName]
????Order?by
????????NewID()
?????????通過使用 3 + 4 的組合可以很容易地拼裝出一張表格出來,以便在日常工作中使用。
??????由于現在工作的系統是 繁體系統,上班時又封網,搞到文章中顯得簡繁一體了,呵呵。