如果数据库不存在,我想制作用于创建数据库的SQL Server
脚本。
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'DataBase')
BEGIN
CREATE DATABASE DataBase
USE DataBase
CREATE TABLE TableName (
Id INT PRIMARY KEY IDENTITY (1, 1),
Name VARCHAR(100)
)
--more tables here
--some procedures here too
END
从上面的代码我得到这个错误:
消息911,级别16,状态1,第5行数据库'数据库'不存在。请确保输入的名称正确。
当数据库不存在的时候,如何用表和过程创建数据库?我想在一个查询中创建它。
3条答案
按热度按时间hmmo2u0o1#
请检查以下脚本:
juud5qan2#
显然,您必须从以下内容开始(注意此处的
GO
):但你必须这样做:
如果你不使用
GO
,SSMS(或其他客户端)仍然会认为你的批处理没有完成,你的数据库仍然没有创建,因此不能进一步使用,你会得到你发布的错误消息。现在,您可以开始使用刚创建的数据库:
同样,请注意
GO
语句。在这种情况下,它是不可接受的,因为不可能在一个批处理中合并CREATE DATABASE
和CREATE TABLE
语句。因此,在GO
之后继续执行:正如其他人已经提到的,检查每个表是否存在是一个好的做法,如果不存在,则执行创建操作,如果存在,则执行更改操作(或者什么也不做)。但是,如果您真的不想检查每个表是否存在,例如,当您确定需要从头开始时,可以从删除数据库(如果存在)开始:
hiz5n14c3#
你可以试试这个。