获取布尔结果是否存在表

时间:2014-02-15 14:42:32

标签: mysql sql exists

我不想提交SQL请求。我只是想知道数据库中是否存在特定的表,类似于以下伪语句:

IF EXISTS TABLE mytablename RETURN TRUE ELSE FALSE

我该怎么做?我找到了几个关于如何修改表的例子。

2 个答案:

答案 0 :(得分:3)

这在很大程度上取决于数据库,但这在很多方面都有用:

if exists (select 1 from information_schema.tables where table_name = 'mytablename')

(您可能希望为数据库/模式名称添加其他条件。)

虽然多个数据库支持information_schema,但其他数据库可能使用all_tabs(Oracle)或其他一些表/视图。

并且,如果您想要一个返回此值的查询,请使用:

select max(case when table_name = 'mytablename' then 1 else 0 end) as TableExists
from information_schema.tables;

答案 1 :(得分:0)

试试这个过程

CREATE PROCEDURE dbo.DoesTableExist (@TableName NVARCHAR(100))
AS 
BEGIN
    IF EXISTS (SELECT * FROM sys.tables WHERE Name = @TableName)
        SELECT 1
    ELSE
        SELECT 0  
END