为了澄清,我正在运行Sybase 12.5.3,但我也相信这也适用于SQL Server 2005。基本上,我正在尝试编写一个看起来有点像这样的查询,我已经尽可能简化它以突出显示问题:

DECLARE @a int,  @b int, @c int

SELECT
     @a = huzzah.a
    ,@b = huzzah.b
    ,@c = huzzah.c
FROM (
    SELECT
         1 a
        ,2 b
        ,3 c
) huzzah

此查询给出了以下错误:"错误:141为变量赋值的SELECT语句不得与数据检索操作结合使用。“

到目前为止,我唯一能解决的问题是将派生表数据插入临时表中,然后再将其选中。哪个工作正常,但这不起作用的事实让我感到烦恼。有更好的方法吗?

有帮助吗?

解决方案

错误确实如12.5.3 esd 4& 7,它在12.5.4 esd 4& 6。

看起来像是一个已修补的错误,您唯一的选择似乎是解决方法或修补程序。

找到了似乎是错误377625

其他提示

我刚刚针对12.5.3运行你的代码并且它解析得很好......除了确实运行之外没有返回任何内容。您是否可能将问题简化得太多,因为我根本没有看到任何错误消息。

为了清楚起见,以下内容会运行并返回您期望的内容。

DECLARE @a int,  @b int, @c int

SELECT
     @a = huzzah.a
    ,@b = huzzah.b
    ,@c = huzzah.c
FROM (
    SELECT
         1 a
        ,2 b
        ,3 c
) huzzah

select @a
select @b
select @c
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top