2016-07-30 25 views
0

Windowsサービスを通じてデータを挿入しようとしています。テーブルが存在するかどうかをチェックし、存在しない場合は、テーブルを作成し、同じテーブルにデータを挿入する...私はテーブルを作成し、テーブルが存在しない場合はデータを挿入することができます。テーブルが存在しない場合、以下のコードでテーブルにデータを挿入できません... ....テーブルが存在する場合にデータを挿入するか、テーブルを作成してデータを挿入する

if not exists (select * from sysobjects where name='" + tablename + "' and xtype='U') 

create table " + tablename + 
" (ID int IDENTITY(1,1) NOT NULL,Data nvarchar(max) NULL) 
Insert into " + tablename + " (Data) VALUES('" + Message + "') 

更新: 変更したら、それはSQL Serverと正常に動作しているが、私は、Visual Studioコンソールアプリケーションを介してこれを実行しようとすると、その例外を投げます!それが存在しない場合は

答えて

1

あなたのコードがチェックされ、それはそれと挿入データを作成しますが、uが、テーブルが存在する部分 他をスキップし、その後、あなただけのデータ

if not exists (select * from sysobjects where name='" + tablename + "' and  xtype='U') 

begin 
create table " + tablename + 
" (ID int IDENTITY(1,1) NOT NULL,Data nvarchar(max) NULL) 
Insert into " + tablename + " (Data) VALUES('" + Message + "') 
End 

ELSE 
    Insert into " + tablename + " (Data) VALUES('" + Message + "') 

または指定を挿入し始めると、この条件時に何をすべきかの終わりが

if not exists (select * from sysobjects where name='" + tablename + "' and  xtype='U') 

begin 
create table " + tablename + 
" (ID int IDENTITY(1,1) NOT NULL,Data nvarchar(max) NULL) 
end 
Insert into " + tablename + " (Data) VALUES('" + Message + "') 
+1

私は上記のコードを試してみましたが、その構文エラーを投げて「無効なELSEに近い構文」回答デュードのためしかし、ここではそれが例外をスローして –

+0

おかげ@Zeina "は既に存在していますオブジェクト名 "tablename" .. @ Zeina –

+0

そこに何か間違っている必要があります...それが存在しない限り、我々はテーブルを作成していないので...私のPC上でそれは正常に動作しています! plz再チェックのurコード – Zeina

関連する問題