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對應(yīng)比較好,不會(huì)出現(xiàn)一對多的情況。
(c)syscolumns.length得到的是物理內(nèi)存的長度,所以nvarchar和varchar等類型在數(shù)據(jù)庫中的顯示是這個(gè)的一半。
3:查詢用戶創(chuàng)建的所有數(shù)據(jù)庫
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
10.連接遠(yuǎn)程數(shù)據(jù)庫
select * from OPENDATASOURCE('SQLOLEDB','Data Source=遠(yuǎn)程ip;User
ID=sa;Password=密碼').庫名.dbo.表名
聯(lián)系客服