Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

update wird nicht durchgeführt

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Binary, 29 Januar 2013.

  1. Binary

    Binary Benutzer

    Hallo zusammen,

    wahrscheinlich ist es ein trivialer Anfängerfehler aber iwie bringt mir da der debugger auch nichts.
    Aus irgendeinem Grund wird bei diesem SP das ActiveFlag nicht übernommen.
    Da ich nicht das vordefinierte SP verändern möchte (Releasefähigkeit ist dann hin), habe ich einen kleinen Workaround geschrieben.

    Ich versuche manuell das ActiveFlag = 1 zu setzen.
    Es gibt zwei Tabellen, welche über die FieldID bzw. über die UserFieldID miteinander verbunden sind (ich weiß nicht ob man das so sagen darf).
    Die UserFieldID in [TUserSecurity] entspricht der [FieldID] in [TUsers].
    Als Ergebnis meiner Abfrage in einem eigenen Query bekomme ich die richtige ID zurückgegeben.
    Code:
    select [FieldID] FROM [T32Database].[dbo].[TUsers]  where [ExternalFieldID] = 114
    Ergebnis FieldID = 35
    In einem eigenen Query geht auch das hier
    Code:
    update [T32Database].[dbo].[TUserSecurity]
        set    [ActiveFlag] = 1
        where [T32Database].[dbo].[TUserSecurity].[UserFieldID] = 35
    Zusammengesetzt funktioniert dies allerdings nicht:
    Code:
    DECLARE @currentDate DATETIME
        SELECT @currentDate = GETDATE()
     
    DECLARE @ExternalFieldID varchar(255)
        SELECT @ExternalFieldID = 114
     
    EXECUTE SP_TPL_AddEditRegionUser
    @ExternalFieldID,
    @Forename = Vorname,
    @Surname = Nachname,
    @Primary = '00114123',
    @Secondary = 1234,
    @Udetail_01 = null,
    @Udetail_02 = null,
    @Udetail_03 = null,
    @Udetail_04 = null,
    @Udetail_05 = null,
    @Udetail_06 = null,
    @Udetail_07 = null,
    @Udetail_08 = null,
    @Udetail_09 = null,
    @Udetail_10 = null,
    @Udetail_11 = null,
    @RegionName = null,
    @ActiveFlag = 1,
    @ActiveDate = @currentDate,
    @ExpiryDate = null,
    @AccessLevels = 1111111111
     
    DECLARE @PrimaryFieldID varchar(255)
        select [FieldID] FROM [T32Database].[dbo].[TUsers]  where [ExternalFieldID] = @ExternalFieldID
     
    update [T32Database].[dbo].[TUserSecurity]
        set    [ActiveFlag] = 1
        where [T32Database].[dbo].[TUserSecurity].[UserFieldID] = @PrimaryFieldID
    EDIT:
    Code:
    DECLARE @PrimaryFieldID varchar(255)
        SET @PrimaryFieldID = (select [FieldID] FROM [T32Database].[dbo].[TUsers]  where [ExternalFieldID] = @ExternalFieldID)
    Dann klappts auch wieder mit den Nachbarn ;)
     
  2. ukulele

    ukulele Datenbank-Guru

    Das würde ich auch der Übersicht halber so gestalten. Abgesehen davon könnten dir unterschiedliche Datentypen Probleme machen, Varchar ist als ID vieleicht nicht die beste Wahl.
     
  3. Binary

    Binary Benutzer

    Danke! Habs jetzt wieder zu einem int gemacht.
    Dachte zuerst es würde daran legen, deshalb hatte ich es geändert.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden