我在多個數據庫中有一個表,我需要爲該表中的多個列更新和添加默認值。以編程方式向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 Server Management Studio中使用SQL批處理 - 但它是不是** **正確的SQL語句 - 你不能在代碼中使用這個你執行從你的C#應用程序 –