2014-09-28 72 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