Выберите Cast (Scope_identity) и выполните калькуляцию - PullRequest
1 голос
/ 15 ноября 2011

Почему это не работает?Я получаю сообщение о том, что число не может быть бесконечным.Однако мне пришлось убрать это из оператора вставки, чтобы он не публиковал записи дважды.Где я должен включить этот кусок кода, чтобы мой код мог зацикливаться как новый идентификатор?

            cmd = new SqlCommand(@"SELECT CAST(scope_identity() as int)", con);

            int aID = Convert.ToInt32(cmd.ExecuteScalar());

1 Ответ

5 голосов
/ 15 ноября 2011

Как правило, у вас может быть хранимая процедура для выполнения INSERT и возврата последнего вставленного идентификатора с параметром out, как вы можете видеть в примере здесь: http://www.objectreference.net/post/SCOPE_IDENTITY()-return-the-id-from-the-database-on-insert.aspx

CREATE PROCEDURE [dbo].[Customer_Insert]
    @Name VARCHAR(255),
    @Email VARCHAR(255),
    @Phone VARCHAR(255),
    @CustomerID INT OUTPUT
AS
BEGIN
    INSERT INTO dbo.Customer ([Name], Email, Phone)
    VALUES (@Name,@Email,@Phone)

    SET @CustomerID = CAST(SCOPE_IDENTITY() AS INT)
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...