2017-12-26 22 views
0

2つのテーブルにデータを格納するストアドプロシージャを作成していますtblAirporttblCountryです。 tblCountrytblAirportから国名を取得しますが、国名のインスタンスが1つだけtblCountryに表示されます。これまでのところ、私のストアドプロシージャのために、私はこのストアドプロシージャに名前のインスタンスを1つだけ移入させたい

DECLARE @PK INT = (SELECT PK FROM tblAirport WHERE strName = @strName) 

IF @PK IS NULL 
INSERT INTO tblAirport (ICAOCode,IATACode,strName,strCity,strCountry,degLat,minLat,secLat,Equator,degLong,minLong,secLong,Meridian,strElevation) 
VALUES (@ICAOCode,@IATACode,@strName,@strCity,@strCountry,@degLat,@minLat,@secLat,@Equator,@degLong,@minLong,@secLong,@Meridian,@strElevation) 
SET @PK = (SELECT PK FROM tblAirport WHERE strName = @strName); 


IF EXISTS (SELECT * FROM tblCountry WHERE strCountry = @strCountry) 
SET @strCountry = @strCountry + 'x' 


INSERT INTO tblCountry (strCountry) 
VALUES (@strCountry) 

を持っている私は、重複の国を表示するIF EXISTS (SELECT * FROM tblCountry WHERE strCountry = @strCountry) SET @strCountry = @strCountry + 'x'を使用してみましたが、私は私のテーブルから重複を排除する方法がわかりません。私はSQLを初めて使い、関数IF EXISTSを学んだだけです。どんな提案も素晴らしいだろう。ありがとうございました!一般的に

答えて

1

これは、ELSE IF、複数行を処理する方法である(https://technet.microsoft.com/en-us/library/ms182717(v=sql.110).aspx

IF NOT EXISTS (SELECT * FROM tblCountry WHERE strCountry = @strCountry) 
BEGIN 
    INSERT INTO tblCountry (strCountry) VALUES (@strCountry) 
END; 

しかし、私は特に、ルックアップリストで可能な値を駆動するためのデータを使用して手順を心配するだろうおそらくあらかじめ定義されているべき国のようなものです。あなたは、本当に同じ綴りの綴りを持つ同じ国のフリーフォームの複製に入ることは嫌です。

関連する問題