Unanswered check my SP

  • Thursday, January 11, 2007 7:50 AM
     
     

    i m using SQL Server 2000, in this i have the follwowing SP,

    CREATE PROCEDURE AddNewCountry
     @CountryName  varchar(50),
      @CountryCode  varchar(5)

    AS
    IF exists(Select CountryName from Countries where CountryCode=@CountryCode or CountryName=@CountryName)
    begin
    raiserror('Country Already Exist',16,1)
    end
    else
    begin
    INSERT INTO Countries
    VALUES
     (@CountryName,
      @CountryCode)
    end
    GO
    in this SP in the where clause i used the following line :
    IF exists(Select CountryName from Countries where CountryCode=@CountryCode or CountryName=@CountryName) (used OR operator)
    but it inserted the data if i give 092,'america'

    and if i used AND operator it chekc 092, 'america' if yes then shows error but if i give 092,'Japan' it inserted new row in the Countries table.

    plz give me some other idea what changes i made in my SP as unique Country added with unique Code. if code exists then not allowed to used to enter data in the table same in
    the case of country name .

    plz give me idea what updation i made as after this my SP works fine.

All Replies

  • Thursday, January 11, 2007 8:12 AM
     
     

    In this case you have to use Or operator instead of AND operator.

    And you can enforce Unique Constraint on both tables (not composite)

    ex.

    Create Table Countries(

    CountryCode Int Unique,

    CountryName Varchar(100) Unique

    )