N Prefix And Parameter
I have some stored procedure CREATE PROC MyProc ( @FullName NVARCHAR(200) = NULL ) AS --............. When I call this proc as exec MyProc 'Some english text' it works good.
Solution 1:
The N would only be needed (manually) if you are concatenating a string in the .net code. It's automatic if you declare a SQLParameter as nvarchar: the framework takes care of it for you.
So your client code is incorrect and opens you up to SQL injection
Anyway, the N says that the string literal is unicode.
Solution 2:
N means National language character set also well known as Unicode.
See on Microsoft KB: You must precede all Unicode strings with a prefix N when you deal with Unicode string constants in SQL Server
Solution 3:
What kind of client application do you use?
- if it is .Net - just specify that parameter has Unicode type.
- If it is OLEDB/ADO - the same thing, param must be marked as unicode, and pass wchar_t instead of char
Update Sample from msdn (pay attention to NVarChar):
yourCommand.Parameters.Add(
"@FullName", SqlDbType.NVarChar, 80).Value = "toasters";
And please avoid SQL injection ;)
Post a Comment for "N Prefix And Parameter"