【问题标题】:How to modify a constraint on a SQL Server table from c#?如何从 C# 修改 SQL Server 表的约束?
【发布时间】:2014-09-09 14:33:06
【问题描述】:

我想从 C# 代码修改 SQL Server 表的约束。有可能吗?

请帮忙。

这是我使用的更新示例代码。

using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{ 
      command.CommandText = "UPDATE Student(LastName, FirstName, Address, City) 
                             VALUES(@ln, @fn, @add, @cit) WHERE LastName='" + lastName + "' AND FirstName='" +  firstName+"'";
      connection.Open();

      command.ExecuteNonQuery();

      connection.Close();
}

【问题讨论】:

  • 是的,有可能,你有任何现有的代码可以连接到 sql 吗?
  • 为什么要从 C# 修改约束?您多久修改一次这些约束?
  • 你执行命令 DROP 然后重新创建它; stackoverflow.com/questions/13244889/how-to-alter-constraint
  • 该代码与约束没有任何关系。您只是在更新表格。而且您的代码对 sql 注入是开放的。将值移动到参数。
  • 如果是用于迁移,那么只需运行脚本来更改 SSMS 中的约束。

标签: c# sql sql-server ado.net


【解决方案1】:
var removeConstraint = "ALTER TABLE Customer DROP CONSTRAINT Con_First;";
var createConstraint = "ALTER TABLE Customer ADD CONSTRAINT Con_First UNIQUE (Address);";
var removeConstraintCmd = new SqlCommand(removeConstraint, conn);
removeConstraintCmd.ExecuteNonQuery();
var createConstraintCmd = new SqlCommand(createConstraint, conn);
createConstraintCmd.ExecuteNonQuery();

注意:conn 是您的联系人

脚本字符串(前两个变量)将是您需要更改的内容,但总而言之,您删除约束然后重新创建它。

作为旁注,我很想知道您为什么要这样做。您的整体方法可能存在问题,因为这通常不是从 ADO .net 完成的(当然取决于您的方案)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多