2013-11-16 5 views
-1

Мне присваивается countryId и countrname как 33 и india, если я даю тот же countryid и countryname, что он должен дать сообщение как обновленное. пожалуйста, скажите мне код для этого .. Я написал как этот, пожалуйста, помогите мне ответить на этот вопрос

IF EXISTS (SELECT * FROM Table1 WHERE [email protected]) 
    BEGIN 
     SELECT 'already exists' 
    END 
ELSE BEGIN 
    UPDATE Table1 
    SET 
     CountryName = @CountryName 
    WHERE CountryId = @CountryId        
    SELECT @QStatus = 'values updated'; 
END 
+0

Пожалуйста, отредактируйте название, чтобы быть более связанным с вопросом запроса и, пожалуйста, отформатируйте вопрос, чтобы его можно было прочитать. – Zegar

ответ

1

Ваше IF заявление логика не является правильным. UPDATE используется для изменение существующих строк, поэтому, если строка не существует, то ничего не стоит UPDATE.

Вы должны использовать INSERT

IF EXISTS (SELECT * FROM Table1 WHERE [email protected]) 
    BEGIN 
     SELECT 'already exists' 
    END 
ELSE BEGIN 
    INSERT Table1 (CountryName, CountryId) 
    VALUES (@CountryName, CountryId)        
    SELECT @QStatus = 'values inserted'; 
END 

Однако, если то, что вам нужно сделать, это заменить название страны на ID прошла вы можете воспользоваться

IF EXISTS (SELECT * FROM Table1 WHERE [email protected]) 
BEGIN 
    UPDATE Table1 
    SET 
     CountryName = @CountryName 
    WHERE CountryId = @CountryId        
    SELECT @QStatus = 'values updated'; 
END 

Из SQL, которую вы предоставили трудно сказать, что вы на самом деле пытаетесь сделать.

+0

спасибо, что дал мне ответ. У меня есть еще одно сомнение, можете ли вы это прояснить? – user2999080

+0

Предположим, что мы указали один и тот же идентификатор страны с другим именем CountryName. Он должен успешно отображать «Обновлено». так что вы можете сказать мне код для этого – user2999080

+0

Второй оператор SQL в моем ответе делает это. Если строка существует, соответствующая переданному ей идентификатору, она обновляет имя до параметра '@ CountryName'. – Tony

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