Checking @@ROWCOUNT failingUsing SSIS to get record counts for tables that may not existHandling exceptions in stored procedures called using insert-exec blocksSQL 2005 Unused proceduresDuplicate records in primary key during big selectHandling exceptions with INSERT-EXEC with linked server stored proc and table resultsBulk insert and fast ordered search large data 3B+ recordsExpensive Insert Operation pause Other Insert OperationProblems with insert trigger and primary keyImplicit conversion causing error part of the timeINSERT/SELECT xml column from one table to another

Does capillary rise violate hydrostatic paradox?

Why do Radio Buttons not fill the entire outer circle?

Why didn't Voldemort know what Grindelwald looked like?

Would this string work as string?

What do the positive and negative (+/-) transmit and receive pins mean on Ethernet cables?

Comic-book: Kids find a dead female superhero in the woods

Find a point shared by maximum segments

Toggle window scroll bar

New Order #2: Turn My Way

Why would five hundred and five same as one?

What 1968 Moog synthesizer was used in the Movie Apollo 11?

Why is indicated airspeed rather than ground speed used during the takeoff roll?

What is this high flying aircraft over Pennsylvania?

Should a narrator ever describe things based on a character's view instead of facts?

Is divisi notation needed for brass or woodwind in an orchestra?

Is there a distance limit for minecart tracks?

Air travel with refrigerated insulin

categorizing a variable turns it from insignificant to significant

Make a Bowl of Alphabet Soup

Do native speakers use "ultima" and "proxima" frequently in spoken English?

How to get directions in deep space?

How can a new country break out from a developed country without war?

Offset in split text content

Put the phone down / Put down the phone



Checking @@ROWCOUNT failing


Using SSIS to get record counts for tables that may not existHandling exceptions in stored procedures called using insert-exec blocksSQL 2005 Unused proceduresDuplicate records in primary key during big selectHandling exceptions with INSERT-EXEC with linked server stored proc and table resultsBulk insert and fast ordered search large data 3B+ recordsExpensive Insert Operation pause Other Insert OperationProblems with insert trigger and primary keyImplicit conversion causing error part of the timeINSERT/SELECT xml column from one table to another













1















I have a code similar to the one below in one of my SQL procedures,



declare @rowcount int

update table1
set value = @value
where id = @id

select @rowcount = @@ROWCOUNT

if ( @rowcount = 0 )
begin
insert into table1(id, value1,value2...)
select (@id, @value1, @value2...)
end


But it fails rarely, like once in a day etc. That means the data exists in the table and @@rowcount is 0 and it tried to insert data and primary key violation happening. Here all values which are inserting ie. id,value1,value2 etc are integers. Any thoughts?










share|improve this question







New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 5





    Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

    – Scott Hodgin
    3 hours ago











  • There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

    – blue
    3 hours ago















1















I have a code similar to the one below in one of my SQL procedures,



declare @rowcount int

update table1
set value = @value
where id = @id

select @rowcount = @@ROWCOUNT

if ( @rowcount = 0 )
begin
insert into table1(id, value1,value2...)
select (@id, @value1, @value2...)
end


But it fails rarely, like once in a day etc. That means the data exists in the table and @@rowcount is 0 and it tried to insert data and primary key violation happening. Here all values which are inserting ie. id,value1,value2 etc are integers. Any thoughts?










share|improve this question







New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 5





    Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

    – Scott Hodgin
    3 hours ago











  • There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

    – blue
    3 hours ago













1












1








1








I have a code similar to the one below in one of my SQL procedures,



declare @rowcount int

update table1
set value = @value
where id = @id

select @rowcount = @@ROWCOUNT

if ( @rowcount = 0 )
begin
insert into table1(id, value1,value2...)
select (@id, @value1, @value2...)
end


But it fails rarely, like once in a day etc. That means the data exists in the table and @@rowcount is 0 and it tried to insert data and primary key violation happening. Here all values which are inserting ie. id,value1,value2 etc are integers. Any thoughts?










share|improve this question







New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I have a code similar to the one below in one of my SQL procedures,



declare @rowcount int

update table1
set value = @value
where id = @id

select @rowcount = @@ROWCOUNT

if ( @rowcount = 0 )
begin
insert into table1(id, value1,value2...)
select (@id, @value1, @value2...)
end


But it fails rarely, like once in a day etc. That means the data exists in the table and @@rowcount is 0 and it tried to insert data and primary key violation happening. Here all values which are inserting ie. id,value1,value2 etc are integers. Any thoughts?







sql-server primary-key






share|improve this question







New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









blueblue

1061




1061




New contributor




blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






blue is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 5





    Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

    – Scott Hodgin
    3 hours ago











  • There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

    – blue
    3 hours ago












  • 5





    Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

    – Scott Hodgin
    3 hours ago











  • There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

    – blue
    3 hours ago







5




5





Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

– Scott Hodgin
3 hours ago





Have you tried wrapping this code inside a transaction? I'm wondering if some other process is sliding in between the update and the insert.

– Scott Hodgin
3 hours ago













There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

– blue
3 hours ago





There is no transaction. My proc is like below, create procedure my_procname AS BEGIN set nocount on -- sp code here as in the question end

– blue
3 hours ago










1 Answer
1






active

oldest

votes


















5














I'm not sure why you're using a variable, but you need to protect multiple statements with a transaction. What's happening is two users are calling the procedure at the same time, both are getting rowcount = 0, and then they're both trying to insert as a result.



set transaction isolation level serializable;
begin transaction;

update dbo.table1
set value = @value
where id = @id;

if (@@ROWCOUNT = 0)
begin
insert dbo.table1(id, value1,value2...)
values(@id, @value1, @value2...);
end

commit transaction;





share|improve this answer






















    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "182"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );






    blue is a new contributor. Be nice, and check out our Code of Conduct.









    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f232558%2fchecking-rowcount-failing%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    5














    I'm not sure why you're using a variable, but you need to protect multiple statements with a transaction. What's happening is two users are calling the procedure at the same time, both are getting rowcount = 0, and then they're both trying to insert as a result.



    set transaction isolation level serializable;
    begin transaction;

    update dbo.table1
    set value = @value
    where id = @id;

    if (@@ROWCOUNT = 0)
    begin
    insert dbo.table1(id, value1,value2...)
    values(@id, @value1, @value2...);
    end

    commit transaction;





    share|improve this answer



























      5














      I'm not sure why you're using a variable, but you need to protect multiple statements with a transaction. What's happening is two users are calling the procedure at the same time, both are getting rowcount = 0, and then they're both trying to insert as a result.



      set transaction isolation level serializable;
      begin transaction;

      update dbo.table1
      set value = @value
      where id = @id;

      if (@@ROWCOUNT = 0)
      begin
      insert dbo.table1(id, value1,value2...)
      values(@id, @value1, @value2...);
      end

      commit transaction;





      share|improve this answer

























        5












        5








        5







        I'm not sure why you're using a variable, but you need to protect multiple statements with a transaction. What's happening is two users are calling the procedure at the same time, both are getting rowcount = 0, and then they're both trying to insert as a result.



        set transaction isolation level serializable;
        begin transaction;

        update dbo.table1
        set value = @value
        where id = @id;

        if (@@ROWCOUNT = 0)
        begin
        insert dbo.table1(id, value1,value2...)
        values(@id, @value1, @value2...);
        end

        commit transaction;





        share|improve this answer













        I'm not sure why you're using a variable, but you need to protect multiple statements with a transaction. What's happening is two users are calling the procedure at the same time, both are getting rowcount = 0, and then they're both trying to insert as a result.



        set transaction isolation level serializable;
        begin transaction;

        update dbo.table1
        set value = @value
        where id = @id;

        if (@@ROWCOUNT = 0)
        begin
        insert dbo.table1(id, value1,value2...)
        values(@id, @value1, @value2...);
        end

        commit transaction;






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        Aaron BertrandAaron Bertrand

        153k18294490




        153k18294490




















            blue is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            blue is a new contributor. Be nice, and check out our Code of Conduct.












            blue is a new contributor. Be nice, and check out our Code of Conduct.











            blue is a new contributor. Be nice, and check out our Code of Conduct.














            Thanks for contributing an answer to Database Administrators Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f232558%2fchecking-rowcount-failing%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Best approach to update all entries in a list that is paginated?Best way to add items to a paginated listChoose Your Country: Best Usability approachUpdate list when a user is viewing the list without annoying themWhen would the best day to update your webpage be?What should happen when I add a Row to a paginated, sorted listShould I adopt infinite scrolling or classical pagination?How to show user that page objects automatically updateWhat is the best location to locate the comments section in a list pageBest way to combine filtering and selecting items in a listWhen one of two inputs must be updated to satisfy a consistency criteria, which should you update (if at all)?

            Вунгтау (аеропорт) Загальні відомості | Див. також | Посилання | Навігаційне меню10°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.0833310°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.083337731608Vinh AirportVinh airport facelift improves serviceвиправивши або дописавши їївиправивши або дописавши їїр

            Тонконіг бульбистий Зміст Опис | Поширення | Екологія | Господарське значення | Примітки | Див. також | Література | Джерела | Посилання | Навігаційне меню1114601320038-241116202404kew-435458Poa bulbosaЭлектронный каталог сосудистых растений Азиатской России [Електронний каталог судинних рослин Азіатської Росії]Малышев Л. Л. Дикие родичи культурных растений. Poa bulbosa L. - Мятлик луковичный. [Малишев Л. Л. Дикі родичи культурних рослин. Poa bulbosa L. - Тонконіг бульбистий.]Мятлик (POA) Сем. Злаки (Мятликовые) [Тонконіг (POA) Род. Злаки (Тонконогові)]Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Description from Flora of China) [Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Опис від Флора Китаю)]Poa bulbosa L. – lipnice cibulkatá / lipnica cibulkatáPoa bulbosa в базі даних Poa bulbosa на сайті Poa bulbosa в базі даних «Global Biodiversity Information Facility» (GBIF)Poa bulbosa в базі даних «Euro + Med PlantBase» — інформаційному ресурсі для Євро-середземноморського розмаїття рослинPoa bulbosa L. на сайті «Плантариум»