Вам определенно нужно использовать NVARCHAR
в качестве типа данных, и если вы запускаете его в SQL-сервере Mgmt Studio или из «встроенного» SQL-запроса, вам необходимо убедиться, что префикс строковых литералов равен N'.....'
приставка.
Итак, ваш сохраненный процесс должен выглядеть примерно так:
CREATE PROCEDURE dbo.YourProc @Param1 NVARCHAR(100)
AS
SELECT N'Test - [' + @Param1 + N'] - end of test'
И затем вызвать это, используя:
EXEC dbo.YourProc N'foo-bar-value'
Должен дать:
Test - [foo-bar-value] - end of test
и, конечно, было бы намного лучше, если бы я знал, как добавить сюда некоторые японские символы ....: -)
Обновление: ОК, я выбрал несколько случайных кириллических и тайских символов, которые, как я уверен, тоже требуют NVARCHAR
- и мне кажется, что это работает:
EXEC dbo.YourProc N'Є Ї Љ Њ Ќ Ѝ Ў А Й Ж М Р Б'
Test - [Є Ї Љ Њ Ќ Ѝ Ў А Й Ж М Р Б] - end of test
EXEC dbo.YourProc N'฿ ᴂ ᴆ ᴌ ᴔ ᴓ ᴙ ᴚ ᴝ ᴭ ᴦ ᴣ ᴟ'
Test - [฿ ᴂ ᴆ ᴌ ᴔ ᴓ ᴙ ᴚ ᴝ ᴭ ᴦ ᴣ ᴟ] - end of test
Не уверен, почему этот тест на основе Unicode будет работать, и почему он не должен работать с японскими символами ....
Обновление № 2: спасибо за Википедию - это, как говорят, означает "Токио", в Хирагане - кажется, работает для меня:
EXEC dbo.YourProc N'とうきょう'
Test - [とうきょう] - end of test