日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL獲取所有數(shù)據(jù)庫(kù)名、表名、儲(chǔ)存過(guò)程以及參數(shù)

系統(tǒng) 1913 0
原文: SQL獲取所有數(shù)據(jù)庫(kù)名、表名、儲(chǔ)存過(guò)程以及參數(shù)列表

1 .獲取所有用戶名:
SELECT?name?FROM?Sysusers?
where ?status = ' 2 ' ?and?islogin = ' 1 '
islogin
= ' 1 ' 表示帳戶
islogin
= ' 0 ' 表示角色
status
= ' 2 ' 表示用戶帳戶
status
= ' 0 ' 表示糸統(tǒng)帳戶
2 .獲取所有數(shù)據(jù)庫(kù)名:
SELECT?Name?FROM?Master..SysDatabases?ORDER?BY?Name
3 .獲取所有表名
SELECT?Name?FROM?DatabaseName..SysObjects?Where?XType
= ' U ' ?ORDER?BY?Name
XType
= ' U ' :表示所有用戶表;
XType
= ' S ' :表示所有系統(tǒng)表;
4 .獲取所有字段名:
SELECT?Name?FROM?SysColumns?WHERE?id
= Object_Id( ' TableName ' )
5 .獲取數(shù)據(jù)庫(kù)所有類型
select?name?from?systypes?
6 .獲取主鍵字段
SELECT??name?FROM?SysColumns?WHERE?id
= Object_Id( ' 表名 ' )?and?colid = (select?top? 1 ?keyno?from?sysindexkeys? where ?id = Object_Id( ' 表名 ' ))


[綜合網(wǎng)絡(luò)資料整理]

1. 獲取所有數(shù)據(jù)庫(kù)名 :
?? (1)
Select Name FROM Master..SysDatabases order?by Name
2.
獲取所有表名 :
?? (1) Select Name FROM SysObjects Where XType='U' orDER BY Name
?????????? XType='U':
表示所有用戶表 ;
?????????? XType='S':
表示所有系統(tǒng)表 ;

?? (2) SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'

?????????? 注意:一般情況只需要 type = 'U' ,但有時(shí)候會(huì)有系統(tǒng)表混在其中(不知道什么原因),加上后面一句后就能刪除這些系統(tǒng)表了


3.
獲取所有字段名 :
(1)
Select Name FROM SysColumns Where id=Object_Id('TableName')

(2) SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND "syscolumns.id = object_id('tableName')

?????? 注意點(diǎn):
????
a )這里為了重點(diǎn)突出某些重要內(nèi)容,選取了其中幾項(xiàng)信息輸出。
????
b syscolumns 表中只含有數(shù)據(jù)類型編號(hào),要獲取完整的名字需要從 systypes 表中找,一般用戶使用的數(shù)據(jù)類型用 xusertype 對(duì)應(yīng)比較好,不會(huì)出現(xiàn)一對(duì)多的情況。
????
c syscolumns.length 得到的是物理內(nèi)存的長(zhǎng)度,所以 nvarchar varchar 等類型在數(shù)據(jù)庫(kù)中的顯示是這個(gè)的一半。

4 、得到表中主鍵所包含的列名 :

??? SELECT syscolumns.name FROM syscolumns,sysobjects,sysindexes,sysindexkeys WHERE syscolumns.id = object_id('tablename') AND sysobjects.xtype = 'PK' AND sysobjects.parent_obj = syscolumns.id AND sysindexes.id = syscolumns.id AND sysobjects.name = sysindexes.name AND sysindexkeys.id = syscolumns.id AND sysindexkeys.indid = sysindexes.indid AND syscolumns.colid = sysindexkeys.colid

注意:這是在 4 張系統(tǒng)表中尋找的,關(guān)系比較復(fù)雜,大致可以表示為:
syscolumns
中存有表中的列信息和表 id sysobjects 表中存有主鍵名字(即 PK_Table 類似)和表 id sysindexes 中存 有主鍵名字和表 id index 編號(hào), sysindexkeys 中存有表 id index 編號(hào)和列編號(hào),一項(xiàng)一項(xiàng)對(duì)應(yīng)起來(lái)后就能找到列名了。

?

另外的 SQL 代碼

select syscolumns . name , systypes . name , syscolumns . length from syscolumns ???

? left join systypes on syscolumns . xusertype = systypes . xusertype ?

? where id =( select id from sysobjects where name = ' 訂貨主檔 ' );

go;

或者用這樣的寫法,執(zhí)行結(jié)果一樣:

select syscolumns . name , systypes . name , syscolumns . length from syscolumns , systypes

where ( syscolumns . id = object_id ( ' 訂貨主檔 ' ) and syscolumns . xusertype = systypes . xusertype )

order by syscolumns . colorder;

go

執(zhí)行結(jié)果:(字段只出現(xiàn)一次,正常)

訂單號(hào)碼 ??? int 4

客戶編號(hào) ??? nvarchar ??? 10

員工編號(hào) ??? int 4

訂單日期 ??? datetime ??? 8

要貨日期 ??? datetime ??? 8

送貨日期 ??? datetime ??? 8

送貨方式 ??? int 4

運(yùn)費(fèi) ??? money ?? 8

收貨人 ? nvarchar ??? 80

送貨地址 ??? nvarchar ??? 120

送貨城市 ??? nvarchar ??? 30

送貨行政區(qū) ? nvarchar ??? 30

送貨郵政編碼 ??? nvarchar ??? 20

送貨國(guó)家地區(qū) ??? nvarchar ??? 30

?

?

select syscolumns . name , systypes . name , syscolumns . length from syscolumns ???

? left join systypes on syscolumns . xtype = systypes . xtype ?

? where id =( select id from sysobjects where name = ' 訂貨主檔 ' );

go;

執(zhí)行結(jié)果:(部分字段出現(xiàn)兩次,數(shù)據(jù)類型不同)

訂單號(hào)碼 ??? int 4

客戶編號(hào) ??? nvarchar ?? 10

客戶編號(hào) ??? sysname ??? 10

員工編號(hào) ??? int 4

訂單日期 ??? datetime ?? 8

訂單日期 ??? 出生日期類型 ??? 8

要貨日期 ??? datetime ?? 8

要貨日期 ??? 出生日期類型 ??? 8

送貨日期 ??? datetime ?? 8

送貨日期 ??? 出生日期類型 ??? 8

送貨方式 ??? int 4

運(yùn)費(fèi) ??? money ? 8

運(yùn)費(fèi) ??? 薪水類型 ??? 8

收貨人 ? nvarchar ?? 80

收貨人 ? sysname ??? 80

送貨地址 ??? nvarchar ?? 120

送貨地址 ??? sysname ??? 120

送貨城市 ??? nvarchar ?? 30

送貨城市 ??? sysname ??? 30

送貨行政區(qū) ? nvarchar ?? 30

送貨行政區(qū) ? sysname ??? 30

送貨郵政編碼 ??? nvarchar ?? 20

送貨郵政編碼 ??? sysname ??? 20

送貨國(guó)家地區(qū) ??? nvarchar ?? 30

送貨國(guó)家地區(qū) ??? sysname ??? 30

查詢存儲(chǔ)過(guò)程 DepartmentSalaryInfo 所有的信息,信息包含在系統(tǒng)視圖 syscolumns systypes

select syscolumns .*, systypes .* from syscolumns ???

? left join systypes on syscolumns . xusertype = systypes . xusertype ?

? where id =( select id from sysobjects where name = 'DepartmentSalaryInfo' );

go

?

?

exec ?? sp_procedure_params_rowset ?? @procedure_name ?? = ?? 'DepartmentSalaryInfo' ;

go

執(zhí)行結(jié)果:

北風(fēng)貿(mào)易 ??? dbo DepartmentSalaryInfo;1 ?? @RETURN_VALUE 0 ?? 4 ?? 0 ?? NULL ?? 0 ?? 3 ?? NULL ?? NULL ?? 10 ??? NULL ?? NULL ?? int int

北風(fēng)貿(mào)易 ??? dbo DepartmentSalaryInfo;1 ?? @department ?? 1 ?? 1 ?? 0 ?? NULL ?? 1 ?? 129 10 ? 10 ? NULL ??? NULL ?? NULL ?? varchar ??? varchar

北風(fēng)貿(mào)易 ??? dbo DepartmentSalaryInfo;1 ?? @average ?? 2 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

北風(fēng)貿(mào)易 ??? dbo DepartmentSalaryInfo;1 ?? @maximum ?? 3 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

北風(fēng)貿(mào)易 ??? dbo DepartmentSalaryInfo;1 ?? @minimum ?? 4 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

?

--存儲(chǔ)過(guò)程中的參數(shù)名,參數(shù)類型,參數(shù)長(zhǎng)度

select syscolumns.name, systypes.name, syscolumns.length from syscolumns ???

? left join systypes on syscolumns.xusertype=systypes.xusertype ?

? where id=(select id from sysobjects where name='DepartmentSalaryInfo');



1:獲取當(dāng)前數(shù)據(jù)庫(kù)中的所有用戶表
select Name from sysobjects where xtype='u' and status>=0
2:獲取某一個(gè)表的所有字段
select name from syscolumns where id=object_id('表名')
3:查詢用戶創(chuàng)建的所有數(shù)據(jù)庫(kù)
select * from master..sysdatabases D where sid not in(select sid from
master..syslogins where name='sa')
或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
4:查詢某一個(gè)表的字段和數(shù)據(jù)類型
select column_name,data_type from information_schema.columns
where table_name = '表名'
[n].[標(biāo)題]:
Select * From TableName Order By CustomerName
[n].[標(biāo)題]:
8.如何修改數(shù)據(jù)庫(kù)的名稱:
sp_renamedb 'old_name', 'new_name'
9.只復(fù)制一個(gè)表結(jié)構(gòu),不復(fù)制數(shù)據(jù)
select top 0 * into [t1] from [t2]
10.連接遠(yuǎn)程數(shù)據(jù)庫(kù)
select * from OPENDATASOURCE('SQLOLEDB','Data Source=遠(yuǎn)程ip;User
ID=sa;Password=密碼').庫(kù)名.dbo.表名
11.獲取當(dāng)前oracle數(shù)據(jù)庫(kù)中的所有表
select table_name from user_tables
12 .獲取當(dāng)前oracle表中所有字段的類型
SELECT
????? COLUMN_NAME,DATA_TYPE,DATA_LENGTH,NULLABLE
FROM
???????? USER_TAB_COLS where TABLE_NAME='teacher';

SQL獲取所有數(shù)據(jù)庫(kù)名、表名、儲(chǔ)存過(guò)程以及參數(shù)列表


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宝山区| 岢岚县| 固镇县| 白山市| 靖州| 沂源县| 大悟县| 上饶县| 新河县| 柳河县| 从江县| 正阳县| 东辽县| 军事| 得荣县| 海安县| 洪雅县| 富阳市| 施甸县| 吴桥县| 项城市| 津南区| 枣庄市| 利川市| 浦北县| 丰都县| 宜宾县| 兴义市| 临漳县| 尼勒克县| 临沭县| 涞源县| 柯坪县| 论坛| 名山县| 湘乡市| 济南市| 巴林左旗| 青海省| 绥江县| 蛟河市|