2010-04-19 72 views

回答

8

試試這個:

DECLARE @RoleFK_value {datatype here} 
SELECT TOP 1 @RoleFK_value=rolepk FROM cfgRole WHERE cfgRole.Name = 'SuperAdmin' 

EXEC [dbo].[pr_cfgAddFact] 
@SettingName = 'TransferBatch', 
@RoleFK = @RoleFK_value 

你不能有內執行該過程的查詢,存儲過程的參數不允許這樣。首先,首先將值選擇爲局部變量,然後將該局部變量傳遞給存儲過程。

存儲過程參數可能只是值,@variables或關鍵字DEFAULT,這意味着查詢和表達式礦石不允許的。

EXECUTE (Transact-SQL)

Execute a stored procedure or function 
[ { EXEC | EXECUTE } ] 
    { 
     [ @return_status = ] 
     { module_name [ ;number ] | @module_name_var } 
     [ [ @parameter = ] { value 
          | @variable [ OUTPUT ] 
          | [ DEFAULT ] 
          } 
     ] 
     [ ,...n ] 
     [ WITH RECOMPILE ] 
    } 
[;] 
1

嘗試

SELECT TOP 1 @RoleFK=rolepk FROM cfgRole WHERE cfgRole.Name