1

爲了澄清,我運行的是Sybase 12.5.3,但我相信這也適用於SQL Server 2005。基本上,我想編寫一個查詢,看起來有點像這樣,我已經簡化它儘可能的突出問題:如何將變量賦值與T-SQL中的數據檢索操作結合起來

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語句不能與數據檢索操作結合使用。「

到目前爲止,我所得到的唯一工作就是將派生表數據插入臨時表中,然後再次選擇它。哪些工作正常,但這不起作用令我感到厭煩。有一個更好的方法嗎?

+0

MSSQL引發同樣的錯誤消息! – Faiz 2009-12-15 13:46:51

回答

2

在12.5.3 ESD 4 & 7中確實出現錯誤,它在12.5.4 ESD 4 & 6.

看起來像一個經過修補的錯誤運行正常,你唯一的選擇似乎是解決方法或補丁。

已找到似乎是bug 377625

1

我剛剛對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 
+0

我只看了@@版本,我們現在坐在: Adaptive Server Enterprise/12.5.3/EBF 13332 ESD#7/P/Linux Intel/Enterprise Linux/ase1253/1951/32位/ OPT/Fri Mar 24 00:40:52 2006 – ninesided 2008-10-28 00:00:00

相關問題