簡體   English   中英

SQL Server:從查詢中獲取某些表名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM