update wird nicht durchgeführt

Binary

Benutzer
Beiträge
7
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 ;)
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.582
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.
 
Werbung:
Oben