如何在数据库中学习表名,如何学习任何表的列名?
SELECT Col.COLUMN_NAME, Col.DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS AS Col
LEFT OUTER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS Usg ON Col.TABLE_NAME = Usg.TABLE_NAME AND Col.COLUMN_NAME = Usg.COLUMN_NAME
LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS Con ON Usg.CONSTRAINT_NAME = Con.CONSTRAINT_NAME
WHERE Col.TABLE_NAME = 'Addresses_Temp' AND Con.Constraint_TYPE = 'PRIMARY KEY'
但它返回给我空数据:(
答案 0 :(得分:2)
我不完全确定问题是什么,但无论如何它仍然存在......
显示表格信息
Select * From Information_Schema.Tables
显示列信息
Select * From Information_Schema.Columns
显示表约束信息
Select * From Information_Schema.Table_Constraints
以下是与信息架构视图相关的一些其他资源。
http://msdn.microsoft.com/en-us/library/ms186778.aspx
如果您的查询没有返回任何行,那么该表可能不再存在。它毕竟是_temp
答案 1 :(得分:0)
您的查询结构必须位于
之下SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='SchemaName' AND TABLE_NAME='TableName'
例如:
SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='dbo' AND TABLE_NAME='Category'