我希望我的存储过程只填充一个名称的实例

问题描述 投票:0回答:1

我正在创建一个存储过程,填充两个表tblAirporttblCountrytblCountrytblAirport获取其国家名称,但我只想在`tblCountry中显示一个国家名称实例。到目前为止,对于我的存储过程,我有这个

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函数。任何建议都会很棒。谢谢!

sql-server if-statement stored-procedures
1个回答
1
投票

这是如何处理多线IF ELSE(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;

但总的来说,我会关注一个程序,它使用数据来驱动查找列表中的可能值,特别是那些可能预先预先定义的国家。你讨厌他们输入自由形式的副本,这些副本实际上是同一个国家,拼写略有不同。

© www.soinside.com 2019 - 2024. All rights reserved.