我想要验证表是否存在于数据库中,如果不存在,则创建它。如何获取当前数据库中所有表的列表?
我可以使用如下SELECT命令来获取数据库列表:
SELECT * FROM sys.databases
剩下的就是在表不存在的情况下创建它。
我还尝试使用数据库同时创建表,如下所示:
if not exists(select * from sys.databases where name = 'db')
begin
create database [db]
use [db];
create table [test] (
Time datetime,
Message varchar(1024) )
end
但它在'use‘行给出了错误,说'db’不存在。这一次,我将尝试使用两个不同的命令来完成此操作。
发布于 2011-07-06 22:53:19
这将为您提供数据库中所有表的列表
SELECT Distinct TABLE_NAME FROM information_schema.TABLES
因此,您可以使用与数据库检查类似的方法。
If NOT EXISTS(SELECT Distinct TABLE_NAME FROM information_schema.TABLES Where TABLE_NAME = 'Your_Table')
BEGIN
--CREATE TABLE Your_Table
END
GO
发布于 2011-07-06 22:52:59
此查询将获取数据库中的所有表
USE [DatabaseName];
SELECT * FROM information_schema.tables;
https://stackoverflow.com/questions/6598289
复制相似问题