c# - 以编程方式向 SQL Server 添加多个默认值

标签 c# sql-server

我在多个数据库中有一个表,我需要为该表中的多个列更新和添加默认值。

我有以下约束要添加到表中:

ALTER TABLE ProcessQUeue
ADD CONSTRAINT C_bSaveAfter DEFAULT 0 FOR bSaveAfter;
GO 

ALTER TABLE ProcessQueue
ADD CONSTRAINT C_bForcePassword DEFAULT 0 FOR bForcePassword;
GO 

ALTER TABLE ProcessQueue
ADD CONSTRAINT C_bIsComplete DEFAULT 0 FOR bIsComplete;
GO

如果我在 SQL Server Management Studio 中运行上面的代码;效果很好。

然后我删除了约束并尝试通过我的代码运行它:

private static string AlterTable(string szQuery, string szReferencedFileName)
{
    try
    {
        using (SqlConnection aConnection = new SqlConnection(szConnectionString))
        {
            aConnection.Open();

            using (SqlCommand dbCommand = new SqlCommand(szQuery, aConnection))
            {
                dbCommand.ExecuteNonQuery();
            }
        }
    }
    //Some usual exception handling
    catch (SqlException e)
    {
        string szMsg = e.Message.ToString() + " " + e.ErrorCode.ToString();

        if (Environment.UserInteractive)
            Console.WriteLine("\r\n" + szMsg + "\r\n - Query: " + szQuery + "\r\n - " + szConnectionString + "\r\n");

        return "ERR:SQLDB/AddTable: " + szMsg;
    }
    catch (Exception e)
    {
        string szMsg = e.Message.ToString();

        if (Environment.UserInteractive)
            Console.WriteLine("\r\n" + szMsg + "\r\n - Query: " + szQuery + "\r\n - " + szConnectionString + "\r\n");

        return "ERRex:CheckSQLDB/AddTable: " + szMsg;
    }

    return string.Empty;
}

我得到一个错误:

Incorrect syntax near 'go'.
Incorrect syntax near 'go'.
Incorrect syntax near 'for'.

在某些情况下,我不得不从查询中删除 GO,所以我也尝试这样做,语法错误是从“go”更改为“for”。

为什么这会在 SQL Server Management Studio 中工作,而不是在 C# 应用程序中工作?

最佳答案

GO 不是有效的 SQL。这就是为什么它不起作用。它只是 Management Studio 使用的批处理分隔符。您可以将所有这些查询放在一个存储过程中,也可以一个一个地运行它们。

关于c# - 以编程方式向 SQL Server 添加多个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39542805/

相关文章:

c# - 如何使用 MSBuild 在输出文件夹中自动创建文件夹?

c# - 将 float[][] 编码为 float**

sql - 如何在 SQL Server 中以十进制格式获取数字的小数部分

mysql - 从其他表中加入最大值的最佳和最佳方式

c# - 有没有办法将现有的 SQL Server 数据库文件添加到项目中进行集成测试?

c# - 结合两个 LINQ 查询的优雅方式

c# - WebClient.DownloadFile 究竟需要什么 URI?

c# - 是否可以在一个 Excel 实例中使用多核?

sql - IS NULL 和 =NULL 有什么区别

c# - 多表加法(+)合二为一(使用sql server 2014、datagridview、visual studio)