Поиск кода последней вставленной записи на SQL сервере - PullRequest
0 голосов
/ 15 марта 2020

Я разрабатываю систему в C#, и я должен вставить записи в 2 таблицы, и таблицы коррелируют. Одна таблица называется Client и имеет столбцы Cod_Cli, Nome_Cli. Вторая таблица - Phone со столбцами Cod_Phone, Num_Phone. Поскольку у клиента может быть несколько телефонных номеров, я создал таблицу корреляции Cli_Phone со столбцами (Cod_Cli, Cod_Phone).

. Когда я разработал свою программу C#, я начал транзакцию, чтобы сделать Коммит (или Откат, если что-то пойдет не так). После того, как я вставил запись в таблицу Phone, я должен получить код этой записи, чтобы вставить новую запись в таблицу Cli_Phone.

Моя проблема: как получить этот код, если я до сих пор не сделал ' т результаты? Я не хочу использовать процедуры.

Я использую SQL Server 2012.

1 Ответ

1 голос
/ 15 марта 2020

В ADO. Net вы можете использовать OUTPUT в запросе вставки и ExecuteScalar для получения идентификатора.

using(SqlCommand cmd=new SqlCommand("INSERT INTO Your_table(column_1) output INSERTED.ID VALUES(@col1)",con))
    {
        cmd.Parameters.AddWithValue("@col1", "your_data");
        con.Open();

        int id =(int)cmd.ExecuteScalar();

        if (con.State == System.Data.ConnectionState.Open) 
            con.Close();

        return id;
    }
...