出现了如下的错误:消息 156,级别 15,状态 1,过程 up_storeNowData,第 43 行
关键字 'ELSE' 附近有语法错误。ALTER PROCEDURE [dbo].[up_storeNowData]
@ldNO char(11) = '00000000000',
@ldRecvDate char(14) = '00000000000000',
@ldVisibility real = 0.0,
@ldTempture real = 0.0,
@ldHumidity real = 0.0,
@ldWindSpeed real = 0.0,
@ldWindDirection real = 0.0,
@ldPressure real = 0.0 ,
@ldPrecipitation real = 0.0,
@ldDew real = 0.0,
@ldRoadTempture real = 0.0,
@ldPointFreezing real = 0.0,
@ldWaterfilmThickness real = 0.0 ,
@ldSalinity real = 0.0,
@ldRoadState real = 0.0
AS
BEGIN
declare @cmd varchar(1000)
IF EXISTS(select ld_no from dbo.NowSTData where ld_no = @ldNO) --UPDATE dbo.NowSTData SET ld_recv_date = @ldRecvDate,
set @cmd = 'UPDATE NowSTData' + ' SET ld_recv_date = ' + ltrim(@ldRecvDate) + ','
+ 'ld_visibility = ' + isnull(ltrim(@ldVisibility),'null') + ','
+ 'ld_tempture = ' + isnull(ltrim(@ldTempture),'null') + ','
+ 'ld_humidity = ' + isnull(ltrim(@ldHumidity),'null') + ','
+ 'ld_wind_speed = ' + isnull(ltrim(@ldWindSpeed),'null') + ','
+ 'ld_wind_direction = ' + isnull(ltrim(@ldWindDirection),'null') + ','
+ 'ld_pressure = ' + isnull(ltrim(@ldPressure),'null') + ','
+ 'ld_precipitation = ' + isnull(ltrim(@ldPrecipitation),'null') + ','
+ 'ld_dew = ' + isnull(ltrim(@ldDew),'null') + ','
+ 'ld_road_tempture = ' + isnull(ltrim(@ldRoadTempture),'null') + ','
+ 'ld_point_freezing = ' + isnull(ltrim(@ldPointFreezing),'null') + ','
+ 'ld_waterfilm_Thickness = ' + isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ 'ld_salinity = ' + isnull(ltrim(@ldSalinity),'null') + ','
+ 'ld_road_state = '+ isnull(ltrim(@ldRoadState),'null')
exec(@cmd)ELSE set @cmd = 'INSERT NowSTData' + ' VALUES(' + ltrim(@ldNO) + ',' + ltrim(@ldRecvDate)+ ','
+ isnull(ltrim(@ldVisibility),'null') + ','
+ isnull(ltrim(@ldTempture),'null') + ','
+ isnull(ltrim(@ldHumidity),'null') + ','
+ isnull(ltrim(@ldWindSpeed),'null') + ','
+ isnull(ltrim(@ldWindDirection),'null') + ','
+ isnull(ltrim(@ldPressure),'null') + ','
+ isnull(ltrim(@ldPrecipitation),'null') + ','
+ isnull(ltrim(@ldDew),'null') + ','
+ isnull(ltrim(@ldRoadTempture),'null') + ','
+ isnull(ltrim(@ldPointFreezing),'null') + ','
+ isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ isnull(ltrim(@ldSalinity),'null') + ','
+ isnull(ltrim(@ldRoadState),'null') + ')'
exec(@cmd)END
关键字 'ELSE' 附近有语法错误。ALTER PROCEDURE [dbo].[up_storeNowData]
@ldNO char(11) = '00000000000',
@ldRecvDate char(14) = '00000000000000',
@ldVisibility real = 0.0,
@ldTempture real = 0.0,
@ldHumidity real = 0.0,
@ldWindSpeed real = 0.0,
@ldWindDirection real = 0.0,
@ldPressure real = 0.0 ,
@ldPrecipitation real = 0.0,
@ldDew real = 0.0,
@ldRoadTempture real = 0.0,
@ldPointFreezing real = 0.0,
@ldWaterfilmThickness real = 0.0 ,
@ldSalinity real = 0.0,
@ldRoadState real = 0.0
AS
BEGIN
declare @cmd varchar(1000)
IF EXISTS(select ld_no from dbo.NowSTData where ld_no = @ldNO) --UPDATE dbo.NowSTData SET ld_recv_date = @ldRecvDate,
set @cmd = 'UPDATE NowSTData' + ' SET ld_recv_date = ' + ltrim(@ldRecvDate) + ','
+ 'ld_visibility = ' + isnull(ltrim(@ldVisibility),'null') + ','
+ 'ld_tempture = ' + isnull(ltrim(@ldTempture),'null') + ','
+ 'ld_humidity = ' + isnull(ltrim(@ldHumidity),'null') + ','
+ 'ld_wind_speed = ' + isnull(ltrim(@ldWindSpeed),'null') + ','
+ 'ld_wind_direction = ' + isnull(ltrim(@ldWindDirection),'null') + ','
+ 'ld_pressure = ' + isnull(ltrim(@ldPressure),'null') + ','
+ 'ld_precipitation = ' + isnull(ltrim(@ldPrecipitation),'null') + ','
+ 'ld_dew = ' + isnull(ltrim(@ldDew),'null') + ','
+ 'ld_road_tempture = ' + isnull(ltrim(@ldRoadTempture),'null') + ','
+ 'ld_point_freezing = ' + isnull(ltrim(@ldPointFreezing),'null') + ','
+ 'ld_waterfilm_Thickness = ' + isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ 'ld_salinity = ' + isnull(ltrim(@ldSalinity),'null') + ','
+ 'ld_road_state = '+ isnull(ltrim(@ldRoadState),'null')
exec(@cmd)ELSE set @cmd = 'INSERT NowSTData' + ' VALUES(' + ltrim(@ldNO) + ',' + ltrim(@ldRecvDate)+ ','
+ isnull(ltrim(@ldVisibility),'null') + ','
+ isnull(ltrim(@ldTempture),'null') + ','
+ isnull(ltrim(@ldHumidity),'null') + ','
+ isnull(ltrim(@ldWindSpeed),'null') + ','
+ isnull(ltrim(@ldWindDirection),'null') + ','
+ isnull(ltrim(@ldPressure),'null') + ','
+ isnull(ltrim(@ldPrecipitation),'null') + ','
+ isnull(ltrim(@ldDew),'null') + ','
+ isnull(ltrim(@ldRoadTempture),'null') + ','
+ isnull(ltrim(@ldPointFreezing),'null') + ','
+ isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ isnull(ltrim(@ldSalinity),'null') + ','
+ isnull(ltrim(@ldRoadState),'null') + ')'
exec(@cmd)END
@ldNO char(11) = '00000000000',
@ldRecvDate char(14) = '00000000000000',
@ldVisibility real = 0.0,
@ldTempture real = 0.0,
@ldHumidity real = 0.0,
@ldWindSpeed real = 0.0,
@ldWindDirection real = 0.0,
@ldPressure real = 0.0 ,
@ldPrecipitation real = 0.0,
@ldDew real = 0.0,
@ldRoadTempture real = 0.0,
@ldPointFreezing real = 0.0,
@ldWaterfilmThickness real = 0.0 ,
@ldSalinity real = 0.0,
@ldRoadState real = 0.0
AS
BEGIN
declare @cmd varchar(1000)
IF EXISTS(select ld_no from dbo.NowSTData where ld_no = @ldNO)
BEGIN
--UPDATE dbo.NowSTData SET ld_recv_date = @ldRecvDate,
set @cmd = 'UPDATE NowSTData' + ' SET ld_recv_date = ' + ltrim(@ldRecvDate) + ','
+ 'ld_visibility = ' + isnull(ltrim(@ldVisibility),'null') + ','
+ 'ld_tempture = ' + isnull(ltrim(@ldTempture),'null') + ','
+ 'ld_humidity = ' + isnull(ltrim(@ldHumidity),'null') + ','
+ 'ld_wind_speed = ' + isnull(ltrim(@ldWindSpeed),'null') + ','
+ 'ld_wind_direction = ' + isnull(ltrim(@ldWindDirection),'null') + ','
+ 'ld_pressure = ' + isnull(ltrim(@ldPressure),'null') + ','
+ 'ld_precipitation = ' + isnull(ltrim(@ldPrecipitation),'null') + ','
+ 'ld_dew = ' + isnull(ltrim(@ldDew),'null') + ','
+ 'ld_road_tempture = ' + isnull(ltrim(@ldRoadTempture),'null') + ','
+ 'ld_point_freezing = ' + isnull(ltrim(@ldPointFreezing),'null') + ','
+ 'ld_waterfilm_Thickness = ' + isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ 'ld_salinity = ' + isnull(ltrim(@ldSalinity),'null') + ','
+ 'ld_road_state = '+ isnull(ltrim(@ldRoadState),'null')
exec(@cmd)
END
ELSE
BEGIN
set @cmd = 'INSERT NowSTData' + ' VALUES(' + ltrim(@ldNO) + ',' + ltrim(@ldRecvDate)+ ','
+ isnull(ltrim(@ldVisibility),'null') + ','
+ isnull(ltrim(@ldTempture),'null') + ','
+ isnull(ltrim(@ldHumidity),'null') + ','
+ isnull(ltrim(@ldWindSpeed),'null') + ','
+ isnull(ltrim(@ldWindDirection),'null') + ','
+ isnull(ltrim(@ldPressure),'null') + ','
+ isnull(ltrim(@ldPrecipitation),'null') + ','
+ isnull(ltrim(@ldDew),'null') + ','
+ isnull(ltrim(@ldRoadTempture),'null') + ','
+ isnull(ltrim(@ldPointFreezing),'null') + ','
+ isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ isnull(ltrim(@ldSalinity),'null') + ','
+ isnull(ltrim(@ldRoadState),'null') + ')'
exec(@cmd)
ENDEND试试,把CMD输出PRINT来看看
@ldNO char(11) = '00000000000',
@ldRecvDate char(14) = '00000000000000',
@ldVisibility real = 0.0,
@ldTempture real = 0.0,
@ldHumidity real = 0.0,
@ldWindSpeed real = 0.0,
@ldWindDirection real = 0.0,
@ldPressure real = 0.0 ,
@ldPrecipitation real = 0.0,
@ldDew real = 0.0,
@ldRoadTempture real = 0.0,
@ldPointFreezing real = 0.0,
@ldWaterfilmThickness real = 0.0 ,
@ldSalinity real = 0.0,
@ldRoadState real = 0.0
AS
BEGIN
declare @cmd varchar(1000)
IF EXISTS(select ld_no from dbo.NowSTData where ld_no = @ldNO)
BEGIN
--UPDATE dbo.NowSTData SET ld_recv_date = @ldRecvDate,
set @cmd = 'UPDATE NowSTData' + ' SET ld_recv_date = ' + ltrim(@ldRecvDate) + ','
+ 'ld_visibility = ' + isnull(ltrim(@ldVisibility),'null') + ','
+ 'ld_tempture = ' + isnull(ltrim(@ldTempture),'null') + ','
+ 'ld_humidity = ' + isnull(ltrim(@ldHumidity),'null') + ','
+ 'ld_wind_speed = ' + isnull(ltrim(@ldWindSpeed),'null') + ','
+ 'ld_wind_direction = ' + isnull(ltrim(@ldWindDirection),'null') + ','
+ 'ld_pressure = ' + isnull(ltrim(@ldPressure),'null') + ','
+ 'ld_precipitation = ' + isnull(ltrim(@ldPrecipitation),'null') + ','
+ 'ld_dew = ' + isnull(ltrim(@ldDew),'null') + ','
+ 'ld_road_tempture = ' + isnull(ltrim(@ldRoadTempture),'null') + ','
+ 'ld_point_freezing = ' + isnull(ltrim(@ldPointFreezing),'null') + ','
+ 'ld_waterfilm_Thickness = ' + isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ 'ld_salinity = ' + isnull(ltrim(@ldSalinity),'null') + ','
+ 'ld_road_state = '+ isnull(ltrim(@ldRoadState),'null')
exec(@cmd)
end
ELSE
begin
set @cmd = 'INSERT NowSTData' + ' VALUES(' + ltrim(@ldNO) + ',' + ltrim(@ldRecvDate)+ ','
+ isnull(ltrim(@ldVisibility),'null') + ','
+ isnull(ltrim(@ldTempture),'null') + ','
+ isnull(ltrim(@ldHumidity),'null') + ','
+ isnull(ltrim(@ldWindSpeed),'null') + ','
+ isnull(ltrim(@ldWindDirection),'null') + ','
+ isnull(ltrim(@ldPressure),'null') + ','
+ isnull(ltrim(@ldPrecipitation),'null') + ','
+ isnull(ltrim(@ldDew),'null') + ','
+ isnull(ltrim(@ldRoadTempture),'null') + ','
+ isnull(ltrim(@ldPointFreezing),'null') + ','
+ isnull(ltrim(@ldWaterfilmThickness),'null') + ','
+ isnull(ltrim(@ldSalinity),'null') + ','
+ isnull(ltrim(@ldRoadState),'null') + ')'
exec(@cmd)
end
END
里面有2条语句啊
在else前加上end
是语句块,然后就可以了。