创建一个存储过程来返回一个机场列表lat和long
这是我到目前为止,但我不能让它正常运行。我不断收到语法不正确的错误ON FROM FROM TBL_AIRPORT AIR
。但我无法弄清楚应该在那里,或者改变什么,所以我不能运行它。任何帮助,将不胜感激。创建一个存储过程来返回一个机场列表lat和long
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE SP_GETAIRPORTS
@GEOLOCATION GEOGRAPHY = NULL,
@ICAOCODE VARCHAR(10) = NULL,
@IATACODE VARCHAR(4) = NULL,
@COUNTRY_FK INT = NULL,
@STRNAME VARCHAR(MAX) = NULL,
@STRCITY VARCHAR(MAX) = NULL,
@INT_ELEVATION INT = NULL
AS
BEGIN TRANSACTION
BEGIN TRY
SET NOCOUNT ON
SET ANSI_WARNINGS OFF
SELECT
GEOLOCATION.LAT, GEOLOCATION.LONG, ICAOCODE, IATACODE,
STRNAME, STRCITY, COUNTRY.COUNTRYNAME, INT_ELEVATION
FROM
TBL_AIPORT AIR
FROM
TBL_AIRPORT AIR
JOIN
TBL_COUNTRY C ON C.COUNTRY_ID = AIR.COUNTRY_FK
WHERE
GEOLOCATION.LAT <> 0 OR GEOLOCATION.LONG <> 0
END TRY
BEGIN CATCH
-- .....
END CATCH
重写你select
条款,因为你用“TBL_AIRPORT”表两次相同的关键字“FROM”,并还适当编写开始,提交事务的语法。
SELECT
GEOLOCATION.LAT, GEOLOCATION.LONG, ICAOCODE, IATACODE, STRNAME,
STRCITY, COUNTRY.COUNTRYNAME, INT_ELEVATION
FROM
TBL_AIRPORT AIR
JOIN
TBL_COUNTRY C ON C.COUNTRY_ID = AIR.COUNTRY_FK
WHERE
GEOLOCATION.LAT <> 0 OR GEOLOCATION.LONG <> 0
是的!很简单。这让我疯狂。谢谢 – user7299268
它现在不返回geolocation.lat或geolocation.long任何东西。我得到一个错误,找不到'Lat'字段的属性。Microsoft.Sql.serverttype ..... – user7299268
LAT和LONG在哪个表中显示..? – Mansoor
那是因为你有多余的 'FROM TBL_AIRPORT AIR' –