gpt4 book ai didi

sql-server - SQL Server 2005 : Subquery in EXEC?

转载 作者:行者123 更新时间:2023-12-03 23:26:14 24 4
gpt4 key购买 nike

EXEC [dbo].[pr_cfgAddFact] 
@SettingName = 'TransferBatch',
@RoleFK = SELECT TOP 1 rolepk FROM cfgRole WHERE cfgRole.Name = 'SuperAdmin'

为什么 SQL 会提示这里的 SELECT 子句?我正在尝试使用获取数据的子查询来运行 proc。

最佳答案

试试这个:

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 ]
}
[;]

关于sql-server - SQL Server 2005 : Subquery in EXEC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com