2013-05-13 54 views
0

我收到此錯誤與下面的SQL:SQL錯誤512,同時使SQL作業

子查詢返回多個值。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。

有人知道我該如何解決嗎?

use character 

DECLARE @guild_codex varchar(25) 
DECLARE @character_name0 varchar(40) 
DECLARE @user_no0 varchar (25), @id varchar (25) 
DECLARE @user_no varchar (25), @group_id varchar (25), @amount varchar (25) 
DECLARE @free_amount varchar(25), @2mx_Leader varchar(3), @2mx_member varchar (3) 

SET @2mx_Leader = 700 SET @2mx_member = 500 SET @id = (SELECT id from 
[PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET 
@user_no = (SELECT user_no from [PC-ID].[Cash].[dbo].[user_cash] 
where free_amount LIKE 0) SET @group_id = (SELECT group_id from 
[PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET 
@amount = (SELECT amount from [PC-ID].[Cash].[dbo].[user_cash] 
where free_amount LIKE 0) SET @free_amount = (SELECT free_amount from 
[PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET 
@guild_codex = (SELECT guild_code from siege_info where siege_tag LIKE'Y') 

SET @character_name0 = (SELECT character_name from guild_char_info 
where guild_code LIKE @guild_codex and peerage_code LIKE 0) SET 
@user_no0 = (SELECT user_no from user_character where character_name 
LIKE @character_name0) 
use cash 
UPDATE user_cash SET 
[email protected]_Leader WHERE user_no = @user_no0 
+2

'SELECT TOP 1 * FROM' - 或類似 – 2013-05-13 23:41:30

+0

SQL服務器指責你試圖把多個值到一個簡單,不表,可變碼。你有幾個'SELECT'沒有'WHERE'子句。他們中的任何一個返回多個值? – HABO 2013-05-14 00:03:53

+0

添加了所有where子句,但我仍然得到該錯誤:\ 在最後一部分中,我想爲siege_no coloumn中的所有行設置@user_nox值,其中所有user_no都像user_nox。我該怎麼做? – 2013-05-14 00:18:58

回答

0

與SQL中的多個問題

要分配多個變量的值,從同一個表中選擇,用where子句,你這是多次往返的DB相同的,而它可以完成一次調用如下:

SELECT 
     @id = id, 
     @user_no = user_no, 
     @group_id = group_id, 
     @amount = amount, 
     @free_amount = free_amount 
    FROM [PC-ID].[Cash].[dbo].[user_cash] 
    WHERE free_amount LIKE 0 

您正在使用LIKE,它可能會返回多行數據,如錯誤消息中所述。嘗試使用=如果可以的話。或者,嘗試執行Select語句,負責填充變量以查看是否返回多行數據。

拉吉

+0

由於它的工作,我沒有得到這個錯誤了..但是這部分: 使用現金 UPDATE user_cash SET 金額=量+ @ 2mx_Leader WHERE user_no = @ user_no0 真的不工作,這一定量添加到「量列「在所有行上!好像where子句不起作用o.O – 2013-05-14 14:05:48