我想查询表的所有列的名称.我找到了如何做到这一点:
神谕
MySQL的
PostgreSQL的
但我需要知道:如何在Microsoft SQL Server(在我的情况下为2008)中完成此操作?
您可以通过查询信息架构视图来获取此信息以及更多信息.
此示例查询:
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'Customers'
可以在所有这些DB对象上进行:
CHECK_CONSTRAINTS
COLUMN_DOMAIN_USAGE
COLUMN_PRIVILEGES
列
CONSTRAINT_COLUMN_USAGE
CONSTRAINT_TABLE_USAGE
DOMAIN_CONSTRAINTS
DOMAINS
KEY_COLUMN_USAGE
参数
REFERENTIAL_CONSTRAINTS
例程
ROUTINE_COLUMNS
SCHEMATA
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TABLES
VIEW_COLUMN_USAGE
VIEW_TABLE_USAGE
VIEWS
您可以使用存储过程sp_columns,它将返回与给定表的所有列有关的信息.更多信息可以在这里找到http://msdn.microsoft.com/en-us/library/ms176077.aspx
您也可以通过SQL查询来完成.这样的事情应该有所帮助 -
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
或者变化是:
SELECT o.Name, c.Name FROM sys.columns c JOIN sys.objects o ON o.object_id = c.object_id WHERE o.type = 'U' ORDER BY o.Name, c.Name
这将获取所有表中的所有列,按表名排序,然后按列名排序.
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='tableName'
这比获取更好,sys.columns
因为它DATA_TYPE
直接显示.
您可以sp_help
在SQL Server 2008中使用.
sp_help;
上述命令的键盘快捷方式:选择表名(即突出显示)并按ALT+ F1.
通过使用此查询,您可以得到答案:
select Column_name from Information_schema.columns where Table_name like 'table name'
您可以编写此查询以获取列名称和所有详细信息,而无需在MySql中使用INFORMATION_SCHEMA:
SHOW COLUMNS FROM database_Name.table_name;
- 这是用于记录大型数据库进行转换的另一种变体(编辑为 - 删除静态列)
--This is another variation used to document a large database for conversion (Edited to --remove static columns) SELECT o.Name as Table_Name , c.Name as Field_Name , t.Name as Data_Type , t.length as Length_Size , t.prec as Precision_ FROM syscolumns c INNER JOIN sysobjects o ON o.id = c.id LEFT JOIN systypes t on t.xtype = c.xtype WHERE o.type = 'U' ORDER BY o.Name, c.Name --In the left join, c.type is replaced by c.xtype to get varchar types
- 在左连接中,c.type被c.xtype替换以获取varchar类型
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('TABLE_NAME')
// TABLE_NAME是你的桌子
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME' ORDER BY ordinal_position
这个问题缺少以下方法:
-- List down all columns of table 'Logging' select * from sys.all_columns where object_id = OBJECT_ID('Logging')
只需运行此命令
EXEC sp_columns 'Your Table Name'
您可以尝试这个.这会为所有列名提供各自的数据类型.
desc