0

我想将存储过程中最后插入的元组的 id 作为参数传递给另一个存储过程。

这里有四个代码片段。前两个片段正常工作:

declare @s bigint
select @s = scope_identity()
exec some_stored_proc @s

exec some_stored_proc scope_identity

但是这两个片段都会导致查询完成并出现错误:

declare @s bigint
select @s = scope_identity

exec some_stored_proc scope_identity()

我不知道括号有什么大惊小怪的!怎么scope_identity()会有不同的语法?

4

1 回答 1

1

它没有不同的语法

它的一个函数和一个函数应该由()

SCOPE_IDENTITY()

declare @s bigint
set @s = scope_identity()
exec some_stored_proc @s

应该管用。

编辑

exec XXX应该得到“就绪值”而不是“计算值”。这就是您无法发送datetimegetDate().

编辑2

根据您的示例-我可以将不带 () 的 getDate 发送给 sp。

在此处输入图像描述

它不起作用。它必须通过@param

于 2012-04-23T11:57:26.463 回答