2013-04-23 3 views
-1

Я пытаюсь обновить, если существует или вставить, если не существует, но этот запрос не будет работать по какой-то причинеSQL Расширенный запрос

DECLARE @serverID varchar(60) 
SET @serverID='(SELECT `c_server` FROM `admin_settings` WHERE `member_id`='%1')' 
IF EXISTS (SELECT `id` FROM `s_advanced_info` WHERE `s_id` = @serverID) 
UPDATE 
    `s_advanced_info` 
SET 
    `s_hostname`='%2', 
    `s_password`='%3', 
    `s_admin_password`='%4', 
    `s_motd`='%5', 
    `s_sigcheck`='%6', 
    `s_maxplayers`='%7', 
    `s_kickduplicate`='%8', 
    `s_sidechat`='%9', 
    `s_von`='%10', 
    `s_vonquality`='%11', 
    `s_datetime_type`='%12', 
    `s_static_date`='%13', 
    `s_static_time`='%14' 
WHERE 
    `s_id` = @serverID 
ELSE 
INSERT INTO 
    `s_advanced_info` 
VALUES 
    ('',@serverID,'%2','%3','%4','%5','%6','%7','%8','%9','%10', 
    '%11','%12','%13','%14') 

Когда я пытаюсь его в консоли тузд это говорит о том, что ошибка здесь :

DECLARE @serverID VARCHAR (60) SET @serverID = '(SELECT c_server FROM admin_settings WHERE member_id = '% 1')'

Что означает ошибка и как ее исправить?

+0

Итак, в чем вопрос? –

+0

congrats, вы знаете предварительные вопросы !!! – Freelancer

+0

что вы хотите от нас сделать ...? –

ответ

0

Попробуйте это: DECLARE @serverID VARCHAR (60) SET @serverID = (SELECT c_server FROM admin_settings WHERE member_id = '% 1')

еще потому, что, кажется, как вы устанавливаете переменную идентификатор_сервера в строку, которая происходит быть sql-запросом. Это действительно то, что вы хотите сделать?

Смежные вопросы