执行CREATE DATABASE与USE语句时提示‘数据库不存在’问题排查
SQL Server中CREATE DATABASE后立即USE报错的原因及解决办法
错误原因
SQL Server执行批量脚本时,会先对整个脚本做预解析(包括对象名称校验),再按顺序执行语句。当解析USE SalesManagement;这一行时,CREATE DATABASE语句还未执行,数据库尚未创建,因此触发“数据库不存在”的错误。
解决办法
方法1:拆分语句分步执行
先单独执行CREATE DATABASE SalesManagement;,确认数据库创建成功后,再执行USE SalesManagement;。
方法2:用GO分隔批处理
GO是SQL Server的批处理分隔符,会强制数据库先执行完前面的批处理,再执行后续语句。修改后的脚本如下:
CREATE DATABASE SalesManagement; GO USE SalesManagement;
方法3:使用动态SQL执行USE语句
动态SQL会在运行时才解析执行,此时数据库已经创建完成,脚本示例:
CREATE DATABASE SalesManagement; EXEC('USE SalesManagement;');
内容的提问来源于stack exchange,提问作者quys
相关产品推荐
相关产品推荐

