时间:2010-06-17 06:43:25

标签: c# .net sql visual-studio

如何在数据库中学习表名,如何学习任何表的列名?

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'

但它返回给我空数据:(

2 个答案:

答案 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'