What I need to do is have a SET IDENTITY_INSERT dbo.myTable ON
statement, what's the syntax of using the above statement in a c# app?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
It's just the same as any other bit of SQL:
using (var connection = new SqlConnection("Connection String here"))
{
connection.Open();
var query = "SET IDENTITY_INSERT dbo.MyTable ON; INSERT INTO dbo.MyTable (IdentityColumn) VALUES (@identityColumnValue); SET IDENTITY_INSERT dbo.MyTable OFF;";
using (var command = new SqlCommand(query, connection)
{
command.Parameters.AddWithValue("@identityColumnValue", 3);
command.ExecuteNonQuery();
}
}
回答2:
Well, if it's part of a SqlCommand
instance, you just add it to the text:
using(SqlConnection myConnection = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SET IDENTITY_INSERT dbo.MyTable ON";
cmd.CommandText += //set the rest of your command here.
}
I question the necessity of this, however. If you're inserting an identity into a table with enough frequency that you're using code, I would recommend a stored procedure to do your insert. You'd then call it basically the same way:
using(SqlConnection myConnectino = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "usp_insert_record_into_my_table [ParamList]";
cmd.CommandType = SqlCommandType.StoredProcedure;
}