Hallo zusammen,
ich versuche eine SP im SQL Server 2005 zu erstellen und habe folgendes Problem :
DECLARE @machineCount as INT
SELECT @machineCount = MachineCounter FROM dbo.MachineCounts
DECLARE @curFlag as BIT
DECLARE @curMachine as NVARCHAR(50)
DECLARE @loopVar as INT
SET @loopVar = 1
WHILE @loopVar != @machineCount
BEGIN
SET @curMachine = 'MachineID' + cast(@loopVar as NVARCHAR(10))
SELECT @curFlag = @curMachine FROM dbo.MachineStates WHERE [...]
IF @curFlag = 1
BEGIN
-- mach was
END
END
In der Zeile
SELECT @curFlag = @curMachine FROM dbo.MachineStates WHERE [...]
knallt es mit der Fehlermeldung, @curMachine könnte nicht in BIT konvertiert werden. Es scheint so zu sein als ob er keine Variable als Spaltennamen in der SELECT-Abfrage zulässt. Ich habe es daher auch schon mit
EXEC @curFlag = 'SELECT ' + @curMachine + ' FROM dbo.MachineStates WHERE [...]' versucht, aber leider lässt er das auch nicht zu.
Kann mir jemand sagen, wie ich den variablen Spaltennamen hier für die Zuweisung von @curFlag verwenden kann ?
Danke...
ich versuche eine SP im SQL Server 2005 zu erstellen und habe folgendes Problem :
DECLARE @machineCount as INT
SELECT @machineCount = MachineCounter FROM dbo.MachineCounts
DECLARE @curFlag as BIT
DECLARE @curMachine as NVARCHAR(50)
DECLARE @loopVar as INT
SET @loopVar = 1
WHILE @loopVar != @machineCount
BEGIN
SET @curMachine = 'MachineID' + cast(@loopVar as NVARCHAR(10))
SELECT @curFlag = @curMachine FROM dbo.MachineStates WHERE [...]
IF @curFlag = 1
BEGIN
-- mach was
END
END
In der Zeile
SELECT @curFlag = @curMachine FROM dbo.MachineStates WHERE [...]
knallt es mit der Fehlermeldung, @curMachine könnte nicht in BIT konvertiert werden. Es scheint so zu sein als ob er keine Variable als Spaltennamen in der SELECT-Abfrage zulässt. Ich habe es daher auch schon mit
EXEC @curFlag = 'SELECT ' + @curMachine + ' FROM dbo.MachineStates WHERE [...]' versucht, aber leider lässt er das auch nicht zu.
Kann mir jemand sagen, wie ich den variablen Spaltennamen hier für die Zuweisung von @curFlag verwenden kann ?
Danke...
Comment