Есть такая процедура:
CREATE PROCEDURE [dbo].[AddHotel]
@adress nvarchar,
@rating int,
@name nvarchar,
@line int,
@distanceToBeach int,
@distanceToAirport INT,
@cityName nvarchar
AS
BEGIN
DECLARE @CityID int
set @CityID = (SELECT Cities.Id FROM dbo.Cities WHERE Cities.Name = @cityName)
INSERT INTO [dbo].[Hotels]
([Name],[Address],[Rating], [DistanceToBeach], [DistanceToAirport], [Line], [Discription])
VALUES
(@name, @adress, @rating, @distanceToBeach, @distanceToAirport, @line, 'some discr')
END
Если ее оставить такой, то запрос cityId вернет null. Если сделать так:
SELECT Cities.Id FROM dbo.Cities WHERE Cities.Name = N'Название города'
, то-есть вернет id как нужно.
Но я то данные для выборки беру из входного параметра.
Решил сделать так:
set @CityID = (SELECT Cities.Id FROM dbo.Cities WHERE Cities.Name = N(@cityName))
И получаю ошибку обновления процедуры -
An error occurred while the batch was being exxecuted
Cities.Name - имеет тип nvarchar