2016-02-03
2016-02-15 最新更新
Windows Azure SQL Database (SQL Server 12.0.2000.8) 上
列出所有資料表(table) 名稱
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME 或 select * from information_schema.tables |
列出所有資料表(table) 的筆數
select o.name, i.rows from sysobjects o inner join sysindexes i on o.id=i.id where i.indid = 1 order by i.rows desc |
列出所有資料表(table) 的筆數 (僅限使用者資料表,不含系統資料表)
select o.name, i.rows from sysobjects o inner join sysindexes i on o.id=i.id where i.indid = 1 and xtype='U' order by i.rows desc |
列出資料庫中所有欄位(field)資訊
select * from information_schema.columns select * from sys.columns |
列出某資料表中所有欄位(field)資訊
SELECT COLUMN_NAME,ORDINAL_POSITION,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '資料表名稱' |
列出資料表中PK欄位
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = '資料表名稱' |
列出所有資料表大小,參考
http://www.sqldocumentor.com/table-size-in-sql-server-find-rows-and-disk-space-usage
SELECT t.schema_name+ ' – '+ t.table_name as schema_table , t.index_name , sum(t.used) as used_in_kb , sum(t.reserved) as reserved_in_kb , sum(t.tbl_rows) as rows from ( SELECT s.Name schema_name , o.Name table_name , coalesce(i.Name, 'HEAP') index_name , p.used_page_count * 8 used , p.reserved_page_count * 8 reserved , p.row_count ind_rows , case when i.index_id in ( 0, 1 ) then p.row_count else 0 end tbl_rows FROM sys.dm_db_partition_stats p INNER JOIN sys.objects as o ON o.object_id = p.object_id INNER JOIN sys.schemas as s ON s.schema_id = o.schema_id LEFT OUTER JOIN sys.indexes as i on i.object_id = p.object_id and i.index_id = p.index_id WHERE o.type_desc = 'USER_TABLE' and o.is_ms_shipped = 0 ) as t GROUP BY t.schema_name, t.table_name , t.index_name ORDER BY 5 desc |
資料庫改名 (實測在 Windows Azure SQL Database 上可用)
sp_rename [_TestTable],[_TestTable2] |
Caution: Changing any part of an object name could break scripts and stored procedures.
顯示所有欄位定義
SELECT
INFORMATION_SCHEMA.TABLES.TABLE_NAME as 資料表名稱,
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME as 欄位名稱,
INFORMATION_SCHEMA.COLUMNS.DATA_TYPE as 欄位資料類型,
INFORMATION_SCHEMA.COLUMNS.CHARACTER_MAXIMUM_LENGTH as 欄位最大長度,
INFORMATION_SCHEMA.COLUMNS.COLUMN_DEFAULT as 欄位預設值,
INFORMATION_SCHEMA.COLUMNS.IS_NULLABLE as 欄位允許空值,
(
SELECT
value
FROM
fn_listextendedproperty (NULL, 'schema', 'dbo', 'table',
INFORMATION_SCHEMA.TABLES.TABLE_NAME, 'column', default)
WHERE
name='MS_Description'
and objtype='COLUMN'
and objname Collate Chinese_Taiwan_Stroke_CI_AS=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
) as 欄位描述
FROM
INFORMATION_SCHEMA.TABLES
LEFT JOIN INFORMATION_SCHEMA.COLUMNS ON (INFORMATION_SCHEMA.TABLES.TABLE_NAME=INFORMATION_SCHEMA.COLUMNS.TABLE_NAME)
WHERE
TABLE_TYPE='BASE TABLE'
ORDER BY
INFORMATION_SCHEMA.TABLES.TABLE_NAME, ordinal_position
|
顯示所有欄位定義 (另一方法)
SELECT sysobjects.name as '資料表名稱',
syscolumns.colid '欄位編號',
syscolumns.name '欄位名稱',
systypes.name '欄位型態',
syscolumns.prec '欄位精確度',
syscolumns.scale '欄位規模',
syscolumns.length '欄位長度',
syscomments.TEXT '欄位預設值',
CASE
WHEN syscolumns.isnullable = 1 THEN 'Y'
ELSE 'N'
END '欄位允許NULL',
CASE
WHEN syscolumns.status & 0X80 = 0X80 THEN 'Y'
ELSE 'N'
END '欄位識別規格(is_identity)',
(SELECT VALUE
FROM Fn_listextendedproperty (NULL, 'schema', 'dbo', 'table',
sysobjects.name,
'column',
syscolumns.name)) '欄位描述'
FROM sysobjects ,
syscolumns
LEFT OUTER JOIN syscomments
INNER JOIN sysobjects obj
ON syscomments.id = obj.id
ON syscolumns.cdefault = syscomments.id
AND syscomments.colid = 1,
systypes
WHERE sysobjects.id = syscolumns.id
AND sysobjects.xtype = 'U'
AND syscolumns.xusertype = systypes.xusertype
ORDER BY
sysobjects.name, syscolumns.colid
|
資訊結構描述檢視 (Transact-SQL)
https://msdn.microsoft.com/zh-tw/library/ms186778(v=sql.120).aspx

沒有留言:
張貼留言