顯示特定資料表的所有欄位名稱
(1)
SELECT B.NAME FROM SYSOBJECTS AS A, SYSCOLUMNS AS B WHERE A.XTYPE = 'U' AND A.ID = B.ID AND A.NAME='TableName';
(2)
SELECT ORDINAL_POSITION,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE,COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='TableName' ORDER BY ORDINAL_POSITION ASC;
(3)
EXEC SP_COLUMNS TableName;
(4)
DECLARE @mStrColumns VARCHAR(8000) , @mStrTable VARCHAR(100)
SET @mStrTable ='TABLE_NAME'
SELECT @mStrColumns = COALESCE(@mStrColumns + ', ', '') + CAST(SC.[NAME] AS VARCHAR(100) ) ,
@mStrTable = schema_Name(schema_id) + '.' + SO.NAME
FROM syscolumns sc
JOIN sys.objects so ON sc.id = so.object_ID
WHERE sc.status <> COALESCE (NULL ,sc.status+1) AND so.name = @mStrTable
SELECT 'SELECT ' + @mStrColumns + ' FROM ' + @mStrTable
/**** Reference ****/
syscolumns
Returns one row for every column in every table and view, and a row for each parameter in a stored procedure in the database.
http://msdn.microsoft.com/en-us/library/ms186816(SQL.90).aspx
sysobjects
Contains one row for each object that is created within a database, such as a constraint, default, log, rule, and stored procedure.
http://msdn.microsoft.com/en-us/library/ms177596(SQL.100).aspx
sys.objects
Contains a row for each user-defined, schema-scoped object that is created within a database.
http://msdn.microsoft.com/en-us/library/ms190324(SQL.90).aspx
coalesce
Evaluates the arguments in order and returns the current value of the first expression that initially does not evaluate to NULL.
http://msdn.microsoft.com/en-us/library/ms190349.aspx
/**** Reference End ****/
取得資料庫所有資料表名稱
SELECT * FROM SYSOBJECTS WHERE XTYPE = 'U';
伺服器各資料庫的名稱
SELECT NAME FROM MASTER.DBO.SYSDATABASES;
資料表及檢視表名稱
SELECT Table_name FROM INFORMATION_SCHEMA.TABLES ORDER BY Table_name;
找資料表的PK欄位
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'TableName';
Read More