попробуйте это:
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
вы не можете иметь запрос в пределах EXECUTE процедуры, параметры хранимых процедур не позволяют этого. сначала выберите значение в локальной переменной, а затем передайте эту локальную переменную в хранимую процедуру.
параметрами хранимой процедуры могут быть только значения, @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 ]
}
[;]