Consulting

Results 1 to 3 of 3

Thread: Update Statements

  1. #1
    VBAX Regular
    Joined
    Nov 2008
    Posts
    53
    Location

    Update Statements

    When I run my update query in Access it updates the 61 rows the query is supposed to update.
    When I run the same update query in SQL Server it updates the 61 rows as it should.
    My problem is that when I create a Stored Proc with paremeters it doesnt do the same as the manual update query it doesnt update any rows. Why would that be?

    Access Code
    UPDATE PARAMED_temp SET PARAMED_temp.ContactServiceID = "LEARN Child"
    WHERE (((PARAMED_temp.StaffID) In ("l36","l37","l39")));
    SQL Server Manual Code
    UPDATE PARAMED_TEMP_BUILD 
    SET PARAMED_TEMP_BUILD.ContactServiceID = 'LEARN CHILD'
    WHERE PARAMED_TEMP_BUILD.StaffID IN ('L36', 'L37', 'L39')
    Stored Procedure
    ALTER PROCEDURE [jez].[sp_PARA_Update19a]
     @ContServID VARCHAR(25),
     @StaffID VARCHAR(10)
    AS
    UPDATE PARAMED_TEMP_BUILD 
    SET PARAMED_TEMP_BUILD.ContactServiceID = @ContServID
    WHERE PARAMED_TEMP_BUILD.StaffID IN ('+ @StaffID +')
    EXEC Statement
    EXEC sp_PARA_Update19a 'LEARN CHILD', 'L36, L37, L39'
    Why is there a difference between them?

  2. #2
    VBAX Tutor Mavyak's Avatar
    Joined
    Jul 2008
    Posts
    204
    Location
    It is treating your in-list as one value instead of all the values comma separated. Try this:

    ALTER PROCEDURE [jez].[sp_PARA_Update19a]
     @ContServID VARCHAR(25),
     @StaffID VARCHAR(10)
    AS
    DECALRE @SQL
    
    SET @ SQL = 'UPDATE PARAMED_TEMP_BUILD SET PARAMED_TEMP_BUILD.ContactServiceID = ' + REPLACE(@ContServID, '''', '''''') + ' WHERE PARAMED_TEMP_BUILD.StaffID IN (''' + REPLACE(@StaffID, ',', ''',''') + ''')'
    EXEC (@SQL)

  3. #3
    VBAX Regular
    Joined
    Nov 2008
    Posts
    53
    Location
    Thanks will do

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •