SQL -Create表(如果不存在),并插入值

时间:2015-12-16 12:17:09

标签: c# sql-server database

我检查我的SQL数据库,看看是否存在列,如果没有创建,但我想在该列中插入一个字符串,但前提是该列不存在。
否则我在C#代码中处理这些信息 到目前为止,我有这段代码:

string query = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tabela' AND COLUMN_NAME = 'coluna') ALTER TABLE tabela ADD coluna varchar(50)" ;  
SqlCommand command = new SqlCommand(query, con);
command.ExecuteNonQuery();  

我该怎么办?

2 个答案:

答案 0 :(得分:0)

更改查询以在IF(伪代码)之后执行一个块:

IF NOT EXISTS(...)
  BEGIN
  ALTER TABLE MyTable ...;
  INSERT INTO MyTable ...;
  END

确保在ALTER和INSERT命令的末尾加上分号,因为您是从应用程序的单个命令中发送这些分号,因此SQL Server会将它们视为全部在一行上。

答案 1 :(得分:-1)

您可以从数据库对象为每个SELECT编写trigger。在那里你可以先检查列是否存在,然后你可以做到这一点。这可以通过使用SQL triggres(甚至存储过程)完全实现 ),C#与它无关:)

有关触发器的详细信息,您可以查看this