我如何使用SET IDENTITY_INSERT dbo.TableName ON
?SET IDENTITY_INSERT如何工作?
這裏是我的錯誤代碼:
當使用列列表只能指定表「tbl_PurchaseRequest」的標識列一個明確的價值和IDENTITY_INSERT爲ON。
我在SQL Server 2014中運行此查詢,它說Command successful
但仍然在C#中工作。
我的代碼:
DBPurCon dbcon = new DBPurCon();
public void Purchase1 (BELPurchase BELPur)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = dbcon.getcon();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SET IDENTITY_INSERT dbo.tbl_PurchaseRequest ON";
cmd.ExecuteNonQuery();
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = dbcon.getcon();
cmd1.CommandType = CommandType.Text;
cmd1.CommandText = "INSERT INTO tbl_PurchaseRequest VALUES (@SID1,@Vendor,@Address,@Date,@Terms,@Qty1,@ITD1,@Unit,@UP1,@TP1,@ATT,@REQBY);";
cmd1.Parameters.AddWithValue("@SID1", BELPur.SID1);
cmd1.Parameters.AddWithValue("@Vendor", BELPur.Vendor);
cmd1.Parameters.AddWithValue("@Address", BELPur.Address);
cmd1.Parameters.AddWithValue("@Date", BELPur.Date);
cmd1.Parameters.AddWithValue("@Terms", BELPur.Terms);
cmd1.Parameters.AddWithValue("@Qty1", BELPur.Qty1);
cmd1.Parameters.AddWithValue("@ITD1", BELPur.ItD1);
cmd1.Parameters.AddWithValue("@Unit", BELPur.Unt1);
cmd1.Parameters.AddWithValue("@UP1", BELPur.UP1);
cmd1.Parameters.AddWithValue("@TP1", BELPur.TP1);
cmd1.Parameters.AddWithValue("@ATT", BELPur.AllTot);
cmd1.Parameters.AddWithValue("@REQBY", BELPur.ReqBy);
cmd1.ExecuteNonQuery();
}
public void Request1 (BELPurchase BELPur)
{
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = dbcon.getcon();
cmd2.CommandType = CommandType.Text;
cmd2.CommandText = "INSERT INTO tbl_RequestPreview VALUES (@ReqTit,@ReqBy,@Terms,@Unlock,@AllTot,'Request')";
cmd2.Parameters.AddWithValue("@ReqTit", BELPur.ReqTit);
cmd2.Parameters.AddWithValue("@ReqBy", BELPur.ReqBy);
cmd2.Parameters.AddWithValue("@Terms", BELPur.Terms);
cmd2.Parameters.AddWithValue("@Unlock", BELPur.Unlock);
cmd2.Parameters.AddWithValue("@AllTot", BELPur.AllTot);
cmd2.ExecuteNonQuery();
}
}
如果我寫在這裏的代碼,它始終運行SET IDENTITY_INSERT
查詢時,我點擊Purchase
按鈕。它只能運行一次還是多次?
你實際上是試圖插入「身份」列?如果是這樣,爲什麼?如果你不是 - 問題是你沒有在'insert'語句中指定一個列列表。它應該是'INSERT INTO tbl_RequestPreview(ColumnName1,ColumnName2等)值(@ Value1,@ Value2,@etc)'。 – Blorgbeard
布格爵士!我想在'tbl_PurchaseRequest'中運行'SET IDENTITY_INSERT'查詢 –
爲什麼你想這麼做?因爲錯誤說要這樣做?你明白它的作用嗎?你知道「身份」專欄是什麼嗎? – Blorgbeard