我将countryId和countrname命名为33和india,如果我给出相同的countryid和countryname,则必须将消息更新为。请告诉我代码......我这样写的
IF EXISTS (SELECT * FROM Table1 WHERE CountryName=@CountryName )
BEGIN
SELECT 'already exists'
END
ELSE BEGIN
UPDATE Table1
SET
CountryName = @CountryName
WHERE CountryId = @CountryId
SELECT @QStatus = 'values updated';
END
答案 0 :(得分:1)
您的IF
语句逻辑不正确。 UPDATE
用于更改现有行,因此如果该行不存在,则UPDATE
没有任何内容。
您需要使用INSERT
IF EXISTS (SELECT * FROM Table1 WHERE CountryName=@CountryName )
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 CountryId=@CountryId )
BEGIN
UPDATE Table1
SET
CountryName = @CountryName
WHERE CountryId = @CountryId
SELECT @QStatus = 'values updated';
END
从您提供的SQL中,很难说出您实际上想要做什么。