我不想提交SQL请求。我只是想知道数据库中是否存在特定的表,类似于以下伪语句:
IF EXISTS TABLE mytablename RETURN TRUE ELSE FALSE
我该怎么做?我找到了几个关于如何修改表的例子。
答案 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