將SQL SERVER中所有表的列資訊顯示出來

2021-09-08 14:18:27 字數 1687 閱讀 1134

將sql server中所有表的列資訊顯示出來  

正在作乙個關於sql server資料庫匯入excel檔案的程式,要讀取資料庫中的列的資訊,從網上找了很多資料,終於總結出來比較理想的sql語句,執行後返回的列分別是:表名、列名、列型別、列長度、列描述、是否主鍵,語句如下:

sysobjects.name 

astb_name, syscolumns.name 

ascol_name

, systypes.name 

ascol_type, syscolumns.length 

ascol_len, 

isnull

(sysproperties.value,syscolumns.name) 

ascol_memo,

case

when

syscolumns.name 

in(select主鍵=

a.name

from

syscolumns a

inner

join

sysobjects b 

ona.id

=b.id   

andb.xtype='

u'andb.name

<>

'dtproperties

'where

exists

(select

1from

sysobjects 

where

xtype='

pk'andname in(

select

name 

from

sysindexes 

where

indid in(

select

indid 

from

sysindexkeys 

where

id =

a.id 

andcolid

=a.colid

))) 

andb.name

=sysobjects.name 

)then

1else

0end

asis_key

from

sysobjects,systypes,syscolumns 

left

join

sysproperties 

on(syscolumns.id 

=sysproperties.id 

andsyscolumns.colid 

=sysproperties.smallid)

where

(sysobjects.xtype ='

u'orsysobjects.xtype ='

v') 

andsysobjects.id 

=syscolumns.id 

andsystypes.xtype 

=syscolumns.xtype 

andsystypes.name 

<>

'sysname

'and

sysobjects.name 

like'%

'order

bysysobjects.name, syscolumns.colid 

如果只想操作乙個表的,那麼把最後的%換成表名就可以了。

將SQL Server中所有表的列資訊顯示出來

正在作乙個關於sql server資料庫匯入excel檔案的程式,要讀取資料庫中的列的資訊,從網上找了很多資料,終於總結出來比較理想的sql語句,執行後返回的列分別是 表名 列名 列型別 列長度 列描述 是否主鍵,語句如下 select sysobjects.name as tb name,sysc...

清空SqlServer中所有表的資料

sp msforeachtable command1 delete from sp msforeachtable使用方法 1 說明 系統儲存過程sp msforeachtable和sp msforeachdb,是微軟提供的兩個不公開的儲存過程,從ms sql 6.5開始。存放在sql server的...

清空SQL Server資料庫中所有表資料的方法

原文 清空sql server資料庫中所有表資料的方法 其實刪除資料庫中資料的方法並不複雜,為什麼我還要多此一舉呢,一是我這裡介紹的是刪除資料庫的所有資料,因為資料之間可能形成相互約束關係,刪除操作可能陷入死迴圈,二是這裡使用了微軟未正式公開的sp msforeachtable儲存過程。也許很多讀者...