Mysql與SqlServer利用sql導出表結構


Mysql利用sql導出表結構

有時候寫文檔時需要將表結構導出,百度了很多種,感覺還是sql直接導出比較合適。

Mysql導出表數據sql如下:

SELECT
	COLUMN_NAME 列名,
	COLUMN_TYPE 數據類型,
	DATA_TYPE 字段類型,
	CHARACTER_MAXIMUM_LENGTH 長度,
	IS_NULLABLE 是否為空,
	COLUMN_DEFAULT 默認值,
	COLUMN_COMMENT 備注 
FROM
	INFORMATION_SCHEMA.COLUMNS 
	WHERE
	table_schema = '數據庫名稱' -- 數據庫名稱,到時候只需要修改成你要導出表結構的數據庫即可
	AND 
	table_name = '表名'
	
	-- 表名,到時候換成你要導出的表的名稱
	-- 如果不寫的話,默認會查詢出所有表中的數據,這樣可能就分不清到底哪些字段是哪張表中的了,所以還是建議寫上要導出的名名稱

演示效果:


導出結果:

SqlServer導出表數據sql如下:

-- 導出sqlserver表結構
SELECT
表名 = Case When A.colorder=1 Then D.name Else '' End,
表說明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End,
字段序號 = A.colorder,
字段名 = A.name,
字段說明 = isnull(G.[value],''),
標識 = Case When COLUMNPROPERTY( A.id,A.name,'IsIdentity')=1 Then '√'Else '' End,
主鍵 = Case When exists(SELECT 1 FROM sysobjects Where xtype='PK' and parent_obj=A.id and name in (
    SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = A.id AND colid=A.colid))) then '√' else '' end,
類型 = B.name,
占用字節數 = A.Length,
長度 = COLUMNPROPERTY(A.id,A.name,'PRECISION'),
小數位數 = isnull(COLUMNPROPERTY(A.id,A.name,'Scale'),0),
允許空 = Case When A.isnullable=1 Then '√'Else '' End,
默認值 = isnull(E.Text,'')
FROM
syscolumns A
Left Join
systypes B
On
A.xusertype=B.xusertype
Inner Join
sysobjects D
On
A.id=D.id and D.xtype='U' and D.name<>'dtproperties'
Left Join
syscomments E
on
A.cdefault=E.id
Left Join
sys.extended_properties G
on
A.id=G.major_id and A.colid=G.minor_id
Left Join
sys.extended_properties F
On
D.id=F.major_id and F.minor_id=0
where d.name='表名' --如果只查詢指定表,加上此條件
Order By
A.id,A.colorder

演示效果就不展示了,具體導出過程與Mysql一致


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM