2017-07-13 12 views
-1

enter image description here:メッセージ2714:メッセージ2714、レベル16、状態6、2行目は、データベースSQLクエリのエラーを実行することができません

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

に「emp表」という名前のオブジェクトが既にあります、レベル16、状態6、行2データベースには、すでに 'Emp'という名前のオブジェクトがあります。

+0

テーブルと同じ名前が既に存在しています。作成スクリプトを再実行する前に確認してください。 – Sujith

答えて

2

であなたは、データベース内の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

あなたはあなたの最初の例に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) 
関連する問題