2014-09-28 74 views
0

我想運行查詢以獲取表中包含的所有列(如果該表存在)。SQL查詢不會返回列中的數據

IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'2000064')) 

查詢得到執行但不返回任何東西!它只是說「查詢執行」。

我嘗試了幾種方法:TABLE_NAME = 2000064,TABLE_NAME ='2000064',但沒有任何返回。 表存在,並且裏面有數據。

我在做什麼錯?

編輯:

我需要返回包含的表,如果表中存在的數據。

+0

你的意思是你的表名以數字而不是字符開頭,如果不是你使用表的object_id,如果是的話......你必須在sys.tables而不是information_schema.tables中搜索 – 2014-09-28 14:48:52

回答

1

要獲取有關列的信息,uou可以運行:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = N'2000064'; 

(注:你應該包括TABLE_SCHEMA以及查找特定的表)

如果該表不存在,那麼你將不會返回行。將它放在if exists語句中,運行查詢,然後運行then子句中的任何內容。你的問題沒有陳述的那部分。

+0

我明白了這一點。其實我需要返回數據而不是信息,只有在表存在的情況下。你能否建議如何到達那裏? – user3855329 2014-09-28 14:49:46

+0

@ user3855329。 。 。這個問題已經有了答案。提出另一個問題,提供樣本數據,期望的結果以及您想要做什麼的解釋。通過改變問題來使答案無效是不禮貌的。 – 2014-09-28 15:03:25