2016-07-30 94 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

,如果它不存在,你的代码检查,它创造并插入数据的话,却跳过了其他部分 表所在,那么你只插入数据

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” @Zeina –

+0

感谢您的回答哥们,但在这里抛出异常“已经有一个对象名称“tablename”.. @ Zeina –

+0

一定有什么问题......因为我们没有创建表,除非它不存在...在我的电脑上它工作正常! PLZ recheck我们的代码 – Zeina