2017-07-13 24 views
-1

enter image description here無法執行SQL查詢錯誤:消息2714,級別16,狀態6,2號線目前已在數據庫中名爲「的Emp」的對象

use mydatabase 
create table Emp(EmpNo int primary key,EmpName varchar(max),Salary money) 
select * from Emp 
insert into Emp values(111,'rama',1000) 

無法執行SQL查詢錯誤:消息2714 ,Level 16,State 6,Line 2在數據庫中已經有一個名爲'Emp'的對象。

+0

已存在同名表格。請在重新運行創建腳本之前檢查。 – Sujith

回答

2

在CREATE TABLE語句拋出一個錯誤,因爲你不能與數據庫中創建兩個表一樣的名字。

如果要在代碼塊中保留create table語句,請嘗試使用下面的代碼。

IF NOT EXISTS(SELECT 1 FROM sys.tables WHERE name = 'Emp') 
BEGIN 
    CREATE TABLE Emp(
     EmpNo int primary key, 
     EmpName varchar(max), 
     Salary money) 
END 

上述代碼塊將創建表,如果它尚不存在。 如果您希望每次查詢運行時都創建新表,以便您可以清空表並更新其結構,請使用下面的代碼。

IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'Emp') DROP TABLE Emp 

CREATE TABLE Emp(
     EmpNo int primary key, 
     EmpName varchar(max), 
     Salary money) 
+0

你的意思是「IF NOT EXISTS」在你的第一個例子上? – artm

+0

是的,我已經更新了代碼塊。 –

0

看起來好像Emp表已經存在,可能是由於之前創建的。你可以嘗試,如果它已經存在,刪除它:

IF OBJECT_ID('dbo.Emp', 'U') IS NOT NULL 
DROP TABLE dbo.Emp; 

然後繼續你:

CREATE TABLE Emp(EmpNo int primary key, EmpName varchar(max), Salary money) 
SELECT * FROM Emp 
INSERT INTO Emp VALUES (111, 'rama', 1000) 
相關問題