Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SCOPE_IDENTITY  [new]
MorAdan
Member

Откуда: Киев
Сообщений: 272
Есть процедура
CREATE PROCEDURE dbo.Pr_PC_Register_Visit (@ID_Patient int,@ID_Visit int,@ID_Patient_Visit int
 output)
AS
BEGIN
 Declare @Vis_Count int,@ID int;
 Select @vis_count = Count(1)
 From Pw_visits Vis
 Where Vis.id_patient = @id_patient And
       Vis.id_visit = @id_visit;
 Insert into Pw_visits(Id_patient, Id_visit, Retest)
 Values (@id_patient, @id_visit, @vis_count);
//---------------------------------------------------------
Select @ID_Patient_Visit = Scope_identity();
//---------------------------------------------------------
  Insert into Pw_visit_tests(Id_patient_visit, Id_profile, Id_profile_test, Sap_code)
  Select @id_patient_visit,
         Pa.id_profile,
         Pt.id_prof_test,
         St.sap_code
  From Vw_pc_vis_prof_avalible Pa
       Join Vw_pc_profiles_tests Pt On Pt.id_profile = Pa.id_profile And Pt.selected = 1
       Join St_tests St On St.id_test = Pt.id_test And St.is_active = 1
  Where Pa.id_visit = @id_visit And
        Pa.selected = 1;
 Return       
END;
Пытаюсть выполнить таким скриптом.
Declare @ID int;
exec PR_PC_Register_Visit 1,8,@ID;
select @ID;
@ID после выполнения null.
Хотя в процедуре вставка в зависимую таблицу проходит нормально.
Где я ступил???
4 дек 09, 16:52    [8021524]     Ответить | Цитировать Сообщить модератору
 Re: SCOPE_IDENTITY  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Где я ступил???

при вызове тоже out надо говорить
exec  PR_PC_Register_Visit 1 , 8 ,@ID out;

Posted via ActualForum NNTP Server 1.4

4 дек 09, 16:54    [8021540]     Ответить | Цитировать Сообщить модератору
 Re: SCOPE_IDENTITY  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
параметр OUT
4 дек 09, 16:54    [8021543]     Ответить | Цитировать Сообщить модератору
 Re: SCOPE_IDENTITY  [new]
MorAdan
Member

Откуда: Киев
Сообщений: 272
хм. Пасиб.
4 дек 09, 16:56    [8021559]     Ответить | Цитировать Сообщить модератору
 Re: SCOPE_IDENTITY  [new]
MorAdan
Member

Откуда: Киев
Сообщений: 272
В догонку...
Почему поле IDENTITY инкрементируеться на 2 вместо 1?
Это связяно с Scope_Identity? Если добавлять вручную такого еффекта нету.
4 дек 09, 16:58    [8021593]     Ответить | Цитировать Сообщить модератору
 Re: SCOPE_IDENTITY  [new]
iiyama
Member

Откуда:
Сообщений: 642
скорее всего какая-нибудь транзакция откатывается, смотрите свой код
(если конечно increment у поля IDENTITY действительно 1)
4 дек 09, 17:15    [8021714]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить