Wenn Sie OUTPUT-Parameter haben, können Sie
DECLARE @retval int
DECLARE @sSQL nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @tablename nvarchar(50)
SELECT @tablename = N'products'
SELECT @sSQL = N'SELECT @retvalOUT = MAX(ID) FROM ' + @tablename;
SET @ParmDefinition = N'@retvalOUT int OUTPUT';
EXEC sp_executesql @sSQL, @ParmDefinition, @[email protected] OUTPUT;
SELECT @retval;
tun, aber wenn Sie dies nicht tun, und kann die SP nicht ändern:
-- Assuming that your SP return 1 value
create table #temptable (ID int null)
insert into #temptable exec mysp 'Value1', 'Value2'
select * from #temptable
Nicht hübsch, aber funktioniert.
meine sp wird sp_executesql @myQuery – JohnIdol
'@ retvalOUT = @ retval OUTPUT'? Sollte der dritte Parameter von 'sp_executesql' nicht nur' @retval OUTPUT' sein? –
Ich habe es! Es akzeptiert optional den Namen des Parameters. –