欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL獲取所有數據庫名、表名、儲存過程以及參數

系統 1832 0
原文: SQL獲取所有數據庫名、表名、儲存過程以及參數列表

1 .獲取所有用戶名:
SELECT?name?FROM?Sysusers?
where ?status = ' 2 ' ?and?islogin = ' 1 '
islogin
= ' 1 ' 表示帳戶
islogin
= ' 0 ' 表示角色
status
= ' 2 ' 表示用戶帳戶
status
= ' 0 ' 表示糸統帳戶
2 .獲取所有數據庫名:
SELECT?Name?FROM?Master..SysDatabases?ORDER?BY?Name
3 .獲取所有表名
SELECT?Name?FROM?DatabaseName..SysObjects?Where?XType
= ' U ' ?ORDER?BY?Name
XType
= ' U ' :表示所有用戶表;
XType
= ' S ' :表示所有系統表;
4 .獲取所有字段名:
SELECT?Name?FROM?SysColumns?WHERE?id
= Object_Id( ' TableName ' )
5 .獲取數據庫所有類型
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( ' 表名 ' ))


[綜合網絡資料整理]

1. 獲取所有數據庫名 :
?? (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':
表示所有系統表 ;

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

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


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')

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

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 張系統表中尋找的,關系比較復雜,大致可以表示為:
syscolumns
中存有表中的列信息和表 id sysobjects 表中存有主鍵名字(即 PK_Table 類似)和表 id sysindexes 中存 有主鍵名字和表 id index 編號, sysindexkeys 中存有表 id index 編號和列編號,一項一項對應起來后就能找到列名了。

?

另外的 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;

或者用這樣的寫法,執行結果一樣:

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

執行結果:(字段只出現一次,正常)

訂單號碼 ??? int 4

客戶編號 ??? nvarchar ??? 10

員工編號 ??? int 4

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

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

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

送貨方式 ??? int 4

運費 ??? money ?? 8

收貨人 ? nvarchar ??? 80

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

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

送貨行政區 ? nvarchar ??? 30

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

送貨國家地區 ??? 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;

執行結果:(部分字段出現兩次,數據類型不同)

訂單號碼 ??? int 4

客戶編號 ??? nvarchar ?? 10

客戶編號 ??? sysname ??? 10

員工編號 ??? int 4

訂單日期 ??? datetime ?? 8

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

要貨日期 ??? datetime ?? 8

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

送貨日期 ??? datetime ?? 8

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

送貨方式 ??? int 4

運費 ??? money ? 8

運費 ??? 薪水類型 ??? 8

收貨人 ? nvarchar ?? 80

收貨人 ? sysname ??? 80

送貨地址 ??? nvarchar ?? 120

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

送貨城市 ??? nvarchar ?? 30

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

送貨行政區 ? nvarchar ?? 30

送貨行政區 ? sysname ??? 30

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

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

送貨國家地區 ??? nvarchar ?? 30

送貨國家地區 ??? sysname ??? 30

查詢存儲過程 DepartmentSalaryInfo 所有的信息,信息包含在系統視圖 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

執行結果:

北風貿易 ??? dbo DepartmentSalaryInfo;1 ?? @RETURN_VALUE 0 ?? 4 ?? 0 ?? NULL ?? 0 ?? 3 ?? NULL ?? NULL ?? 10 ??? NULL ?? NULL ?? int int

北風貿易 ??? dbo DepartmentSalaryInfo;1 ?? @department ?? 1 ?? 1 ?? 0 ?? NULL ?? 1 ?? 129 10 ? 10 ? NULL ??? NULL ?? NULL ?? varchar ??? varchar

北風貿易 ??? dbo DepartmentSalaryInfo;1 ?? @average ?? 2 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

北風貿易 ??? dbo DepartmentSalaryInfo;1 ?? @maximum ?? 3 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

北風貿易 ??? dbo DepartmentSalaryInfo;1 ?? @minimum ?? 4 ?? 2 ?? 0 ?? NULL ?? 1 ?? 6 ?? NULL ?? NULL ?? 19 ??? NULL ?? NULL ?? money ? money

?

--存儲過程中的參數名,參數類型,參數長度

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:獲取當前數據庫中的所有用戶表
select Name from sysobjects where xtype='u' and status>=0
2:獲取某一個表的所有字段
select name from syscolumns where id=object_id('表名')
3:查詢用戶創建的所有數據庫
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:查詢某一個表的字段和數據類型
select column_name,data_type from information_schema.columns
where table_name = '表名'
[n].[標題]:
Select * From TableName Order By CustomerName
[n].[標題]:
8.如何修改數據庫的名稱:
sp_renamedb 'old_name', 'new_name'
9.只復制一個表結構,不復制數據
select top 0 * into [t1] from [t2]
10.連接遠程數據庫
select * from OPENDATASOURCE('SQLOLEDB','Data Source=遠程ip;User
ID=sa;Password=密碼').庫名.dbo.表名
11.獲取當前oracle數據庫中的所有表
select table_name from user_tables
12 .獲取當前oracle表中所有字段的類型
SELECT
????? COLUMN_NAME,DATA_TYPE,DATA_LENGTH,NULLABLE
FROM
???????? USER_TAB_COLS where TABLE_NAME='teacher';

SQL獲取所有數據庫名、表名、儲存過程以及參數列表


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产色产综合色产在线观看视频 | 欧美黑人激情 | 色性综合| 亚洲国产精品99久久久久久久久 | 国产淫语对白在线视频 | 久久人 | 魏千翔| 日韩免费网站 | 日本成人一区二区三区 | 小泽玛利亚一区二区 | 自拍偷拍视频网站 | 欧美久久久久久 | 波多野结衣在线观看网址 | www.天天色.com | 成人黄色网址 | 色噜噜噜噜噜在线观看网站 | 久久亚洲精品中文字幕二区 | 欧美精品综合在线 | 国产毛A片啊久久久久久A | www.奇米影视.com | 毛片精品 | 爽爽影院在线看 | avidolzvideo | 91在线播放网站 | 国产小视频在线观看免费 | 爱爱无遮挡 | 伊人欧美 | 精品一区二区三区水蜜桃 | 成人日韩在线 | 日韩电影中文字幕 | 亚洲精品成人AA片在线播 | 国产精品毛片久久久久久久 | 国产精品美女一区二区 | 亚洲精品中文字幕大岛优香 | 亚洲一区二区三区四区精品 | 久久精品 | 亚洲视频毛片 | 韩国三级bd高清中字木鱼天 | 欧美日本一区 | 亚洲国产中文字幕在线观看 | 中国人免费的片 |