2013-05-26 3 views
4

삽입되지 않으며 나는 키릴 문자를 저장하기 위해 노력하고 있지만, 이것은 SQL 서버입니다 :키릴 문자가 제대로 후 나는 SQL Server 2005를 사용

INSERT INTO Assembly VALUES('Македонски парлиамент број 1','',''); 

또는 C#에서 동일한 문제가 발생하지만 SQL Server에서 열을 삽입/업데이트하면 정상적으로 저장됩니다.

열의 데이터 유형은 nvarchar입니다.

+3

당신은 NVARCHAR/NCHAR 데이터 형식을 더한 N 접두사를 사용해야합니다 :'. .. 값 (N'pарлиамент ');' –

답변

14

문자열 앞에 N 개의 접두사를 추가해야합니다.

문자열 변수를 암시 적으로 선언하면 기본적으로 varchar로 처리됩니다. 접두어 N을 추가하면 후속 문자열이 유니 코드 (nvarchar)에 있음을 나타냅니다. 나는 어쩌면 당신이 정적 저장 프로 시저 또는 스크립트를하고 있다면 모르겠지만,

http://databases.aspfaq.com/general/why-do-some-sql-strings-have-an-n-prefix.html

https://msdn.microsoft.com/en-IN/library/ms186939.aspx

What is the meaning of the prefix N in T-SQL statements?

0

: 여기

INSERT INTO Assembly VALUES(N'Македонски парлиамент број 1','',''); 

몇 가지 읽기입니다 텍스트를 디스크에 저장할 때 텍스트가 제대로 인코딩되지 않습니다. 나는이에 달리고, 내 문제는 내가 OSQL 처리를 위해 디스크에 저장된 SQL의 인코딩을 수정하여 PowerShell에서 해결되었다 :

 Out-File -FilePath "MyFile.sql" -InputObject $MyRussianSQL -Encoding "Unicode" -Force; 
    & osql -U myuser -P password -i "MyFile.sql";