Я создал следующую хранимую процедуру для запуска exec sp_InsertAirport 'value1','value2', etc...
. Однако я получаю ошибку, указанную ниже. Как видите, я пробовал различные методы для удаления нулей, но ни один не работает. Как я могу успешно удалить Nulls в sp, чтобы он мог успешно вставить?
Msg 50000, Уровень 16, Состояние 2, Процедура sp_InsertAirport, Строка 128 [Стартовая Строка 2] Невозможно вставить значение NULL встолбец «Локатор», таблица «DB_Airports.dbo.tbl_Airports»;столбец не допускает пустых значений. Вставить не удается.
USE [DB_Airports]
GO
IF OBJECT_ID('SP_InsertAirport', 'P') IS NOT NULL
DROP PROCEDURE [dbo].[SP_InsertAirport]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_InsertAirport]
@ICAOCode VARCHAR(4) NULL,
@IATACode VARCHAR(3) NULL,
@AirportName VARCHAR(MAX),
@City VARCHAR(MAX),
@Latitude DECIMAL(8,3), --NOT NULL
@Longitude DECIMAL (11,3), --NOT NULL
@Elevation INT,
@CountryName NVARCHAR(MAX)
...
INSERT INTO tbl_Airports(ICAOCode, IATACode, AirportName, City, Latitude, Longitude, Elevation)
VALUES (@ICAOCode, @IATACode, @AirportName, @City, @Latitude, @Longitude, @Elevation)
UPDATE tbl_Airports SET Latitude ='0' WHERE Latitude IS NULL
UPDATE tbl_Airports SET Longitude ='0' WHERE Longitude IS NULL
DELETE FROM tbl_Airports WHERE Latitude = 0 AND Longitude = 0
END TRY
BEGIN CATCH
COMMIT TRANSACTION
END
GO