![](/img/trans.png)
[英]SQL Server Select from a table returned by a query as list of table names
[英]SQL Server : getting certain table names from query
是否可以在查询中仅显示某些表名:
USE [WebContact]
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'memberEmails'
大多数时候,我需要所有表名,但是在某些情况下,我只需要某些行名。
当我尝试执行以下操作时:
USE [WebContact]
SELECT COLUMN_NAME, ContactDateTime
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'memberEmails'
它告诉我
无效的列名“ ContactDateTime”
即使那是行名之一。
这可能吗?
如果ContactDateTime是您要在表memberEmails中查找的列,则可以执行此操作
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'memberEmails'
and COLUMN_NAME='ContactDateTime'
ContactDateTime
列可能是表中的列,但不是INFORMATION_SCHEMA.COLUMNS
视图中的列。
由于那里没有一列,因此SQL Server将错误地指出它无效。
我认为您要执行的操作是在语句中添加另一个WHERE
子句:
USE [WebContact]
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'memberEmails'
AND [COLUMN_NAME] = 'ContactDateTime'; -- Here!
或者,如果您想添加多列...
USE [WebContact]
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'memberEmails'
AND [COLUMN_NAME]
IN ('ContactDateTime', 'column2', 'column3', ... 'column(n)'); -- Here!
另请参阅此处,以了解反对使用INFORMATION_SCHEMAS的情况。
视图INFORMATION_SCHEMA.COLUMNS
没有列名ContactDateTime
。 请先阅读文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.