Как поместить оператор IDENTITY_INSERT dbo.myTable ON НАБОР

То, что я должен сделать, имеют a SET IDENTITY_INSERT dbo.myTable ON оператор, что синтаксис использования является вышеупомянутым оператором в c# приложении?

11
задан SO used to be good 9 January 2016 в 21:51
поделиться

2 ответа

Это то же самое, что и любой другой бит 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();
    }
}
20
ответ дан 3 December 2019 в 04:51
поделиться

Что ж, если это часть экземпляра SqlCommand , вы просто добавляете его в текст:

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.
}

Я сомневаюсь в необходимости этого, однако. Если вы вставляете идентификатор в таблицу с достаточной частотой, чтобы использовать код, я бы порекомендовал хранимую процедуру для выполнения этой вставки. Затем вы бы назвали его в основном таким же образом:

using(SqlConnection myConnectino = new SqlConnection(connString))
{
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "usp_insert_record_into_my_table [ParamList]";
    cmd.CommandType = SqlCommandType.StoredProcedure;
}
3
ответ дан 3 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: