Lo allemaal,
Ik ben aan het werk met een MS SQL 6.5 Stored Procedure, waarvoor ik een tabelnaam als variabale wil kunnen gebruiken. Voor zover ik weet moeten die in 6.5 echter hardcoded zijn. Ik heb hier omheen geprutst door met de variabelen een string te bouwen en die te laten executen. Hoe kan ik nu echter in een stored procedure, de resultaten van een select query, die dus uitgevoerd is in een execute() toewijzen aan een variabele? Waarschijnlijk krijg ik onderstaande fout, doordat het tussen haakjes staande gedeelte van een execute een eigen omgeving is... Iemand die me kan helpen?
Dit is de voorlopige code voor de stp:
CREATE PROCEDURE sp_toggleBit_generic_test
@vchTabel VARCHAR(64),
@vchKolom VARCHAR(64),
@vchID VARCHAR(16)
AS
DECLARE @strSQL VARCHAR(255)
DECLARE @bitCurVal BIT
SELECT @strSQL = 'SELECT ' + @vchKolom + ' FROM ' + @vchTabel + ' WHERE IDENTITYCOL = ' + @vchID
SET NOCOUNT ON
SET @bitCurVal = EXECUTE(@strSQL)
SET NOCOUNT OFF
en dit de foutmelding:
Msg 156, Level 15, State 1
Incorrect syntax near the keyword 'SET'.
Bij voorbaat dank,
Anton.
Ik ben aan het werk met een MS SQL 6.5 Stored Procedure, waarvoor ik een tabelnaam als variabale wil kunnen gebruiken. Voor zover ik weet moeten die in 6.5 echter hardcoded zijn. Ik heb hier omheen geprutst door met de variabelen een string te bouwen en die te laten executen. Hoe kan ik nu echter in een stored procedure, de resultaten van een select query, die dus uitgevoerd is in een execute() toewijzen aan een variabele? Waarschijnlijk krijg ik onderstaande fout, doordat het tussen haakjes staande gedeelte van een execute een eigen omgeving is... Iemand die me kan helpen?
Dit is de voorlopige code voor de stp:
CREATE PROCEDURE sp_toggleBit_generic_test
@vchTabel VARCHAR(64),
@vchKolom VARCHAR(64),
@vchID VARCHAR(16)
AS
DECLARE @strSQL VARCHAR(255)
DECLARE @bitCurVal BIT
SELECT @strSQL = 'SELECT ' + @vchKolom + ' FROM ' + @vchTabel + ' WHERE IDENTITYCOL = ' + @vchID
SET NOCOUNT ON
SET @bitCurVal = EXECUTE(@strSQL)
SET NOCOUNT OFF
en dit de foutmelding:
Msg 156, Level 15, State 1
Incorrect syntax near the keyword 'SET'.
Bij voorbaat dank,
Anton.