글
N의 의미
INSERT INTO 테이블명
VALUES
N'값' 에서 N의 의미
저장 프로시저 및 트리거와 같이 서버에서 실행된 코드에 나타나는 유니코드 문자열 상수 앞에는 대문자 N이 와야 합니다. 참조되는 열이 이미 유니코드로 정의된 경우에도 마찬가지입니다. N 접두사가 지정되지 않은 문자열은 데이터베이스의 기본 코드 페이지로 변환되며 특정 문자를 인식하지 못할 수도 있습니다.
예를 들어 이전 예에서 만든 저장 프로시저는 다음과 같은 방법으로 서버에서 실행될 수 있습니다.
EXECUTE Product_Info @name = N'Chain'
N 접두사 사용에 대한 요구 사항은 서버에서 보낸 문자열 상수와 클라이언트에서 보낸 문자열 상수 모두에 적용됩니다.
https://msdn.microsoft.com/ko-kr/library/ms191313.aspx
★ N을 붙이지 않는다면 DB 기본 COLLATION 으로 인식됨
알기 쉽게 표로 나타내는 Collation 과 NVARCHAR + N 의 관계
DB |
COLUMN |
입력 값 | |||
(N'解除绑') |
('解除绑') |
@변수 nvarchar |
@변수 varchar | ||
SQL_Latin1_ General_CP1_ CI_AS |
SQL_Latin1_ General_CP1_CI_AS VARCHAR |
X |
X |
X (N 유무 상관없음) |
X (N 유무 상관없음) |
SQL_Latin1_ General_CP1_CI_AS NVARCHAR |
O |
X |
SET @NVAR = N'解除绑' O SET @NVAR = '解除绑' X |
X (N 유무 상관없음) | |
Chinese_PRC_ CI_AS VARCHAR |
O |
X |
SET @NVAR = N'解除绑' O SET @NVAR = '解除绑' X |
X (N 유무 상관없음) | |
Chinese_PRC_ CI_AS NVARCHAR |
O |
X |
SET @NVAR = N'解除绑' O SET @NVAR = '解除绑' X |
X (N 유무 상관없음) | |
Chinese_PRC_ CI_AS |
SQL_Latin1_ General_CP1_CI_AS VARCHAR |
X |
X |
X (N 유무 상관없음) |
X (N 유무 상관없음) |
SQL_Latin1_ General_CP1_CI_AS NVARCHAR |
O |
O |
O (N 유무 상관없음) |
O (N 유무 상관없음) | |
Chinese_PRC_ CI_AS VARCHAR |
O |
O |
O (N 유무 상관없음) |
O (N 유무 상관없음) | |
Chinese_PRC_ CI_AS NVARCHAR |
O |
O |
O (N 유무 상관없음) |
O (N 유무 상관없음) |
'MSSQL 2008 > 기타' 카테고리의 다른 글
데이터 타입(2Byte짜리 글자가 깨질 때) (0) | 2015.08.10 |
---|---|
MSSQL 서버이름 변경, 서버명 변경 (0) | 2015.07.16 |
SET SINGLE_USER WITH ROLLBACK IMMEDIATE (0) | 2014.01.22 |
추적 플래그 (0) | 2014.01.20 |
시스템 데이터 베이스 (0) | 2014.01.05 |