SQL报错:数据库中已存在对象'STUDENT_ACTIVITY'求助
解决Msg 2714: 数据库中已存在名为'STUDENT_ACTIVITY'的对象的问题
问题出在你创建数据库后没有切换到目标数据库,导致CREATE TABLE语句实际是在当前默认数据库(比如master)里执行的。哪怕你删除重建了CIT230_02,默认库里的STUDENT_ACTIVITY表依然存在,再次跑代码自然会提示对象已存在。
给你两个直接的解决办法:
方法1:创建数据库后切换上下文
在CREATE DATABASE之后加上USE语句,明确指定后续操作的目标数据库:
DROP DATABASE IF EXISTS CIT230_02; CREATE DATABASE CIT230_02; USE CIT230_02; -- 切换到刚创建的数据库 CREATE TABLE STUDENT_ACTIVITY ( StudentID INT NOT NULL, Activity VARCHAR(45) NULL, ActivityFee Numeric(6,2) NULL ); SELECT * FROM STUDENT_ACTIVITY;
方法2:创建表时指定数据库前缀
如果不想切换上下文,可以在表名前加上数据库名,强制在目标库里创建表:
DROP DATABASE IF EXISTS CIT230_02; CREATE DATABASE CIT230_02; CREATE TABLE CIT230_02.dbo.STUDENT_ACTIVITY ( StudentID INT NOT NULL, Activity VARCHAR(45) NULL, ActivityFee Numeric(6,2) NULL ); SELECT * FROM CIT230_02.dbo.STUDENT_ACTIVITY;
额外提醒:
- 建议在
DROP DATABASE后加上IF EXISTS,避免数据库不存在时抛出额外报错 - 卸载重装软件完全没必要,这个问题和软件本身无关,只是SQL执行的上下文没搞对
内容的提问来源于stack exchange,提问作者kee
相关产品推荐
相关产品推荐

