Как добавить префикс N к переменной в хранимой процедуре в SQL server 2016
Дорогие Все,
У меня есть хранимая процедура, где у меня есть переменная, которая будет английской или арабской строкой, для арабской строки Мне нужно добавить префикс N к переменной.
declare @ModuleName nvarchar(max) set @ModuleName = 'أساسيات الكمبيوتر' SELECT * FROM Module WHERE NameEN LIKE N'%' + @ModuleName + '%' OR NameAR LIKE '%' + @ModuleName + '%'
Что я уже пробовал:
Create function fnGetModuleIDByModuleName (@ModuleName nvarchar(max)) returns int begin declare @ModuleID int SELECT @ModuleID = ID FROM Module where NameEN like '%' + @ModuleName + '%' or NameAR like '%' + @ModuleName + '%' return @ModuleID end
Вызывающая функция
declare @m nvarchar(max) set @m = 'أساسيات الكمبيوتر' select dbo.fnGetModuleIDByModuleName(@m)
если я добавлю префикс N к строке, то он будет работать
declare @m nvarchar(max) set @m = N'أساسيات الكمبيوتر' select dbo.fnGetModuleIDByModuleName(@m)
Я не могу жестко закодировать какую-либо переменную, значение переменной исходит из параметра хранимой процедуры. Итак, мой вопрос заключается в том, как я могу добавить префикс N к переменной@?
Кто-нибудь может пожалуйста помочь мне.
Заранее спасибо
Richard Deeming
Просто добавьте префикс к переменной. В чем проблема?
declare @ModuleName nvarchar(max) set @ModuleName = N'أساسيات الكمبيوتر' SELECT * FROM Module WHERE NameEN LIKE N'%' + @ModuleName + N'%' OR NameAR LIKE N'%' + @ModuleName + N'%'