복붙노트

[SQL] 무엇 T-SQL 문에서 접두사 N의 의미는 무엇이고 언제 사용해야합니까?

SQL

무엇 T-SQL 문에서 접두사 N의 의미는 무엇이고 언제 사용해야합니까?

좀 삽입 T-SQL 쿼리에 접두사 N을 보았다. 많은 사람들이 테이블에 값을 삽입하기 전에 N을 사용했다.

나는 검색,하지만 난 테이블에 모든 문자열을 삽입하기 전에 N 등의 목적이 무엇인지 이해할 수 없습니다.

INSERT INTO Personnel.Employees
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1),

어떤 목적이 'N'접두사 봉사 않으며, 때 사용되어야 하는가?

해결법

  1. ==============================

    1.그것은 VARCHAR보다는, nvarchar 데이터 형식으로 문자열을 선언하는 것

    그것은 VARCHAR보다는, nvarchar 데이터 형식으로 문자열을 선언하는 것

    Microsoft에서 인용 :

    이 두 데이터 유형의 차이를 알고 싶다면,이 SO 게시물을 참조 :

    VARCHAR 및 NVARCHAR의 차이점은 무엇입니까?

  2. ==============================

    2.내가 당신에게 N '접두사로 일어난 성가신 일을 말해 보자 - 나는 이틀 동안 문제를 해결할 수 없습니다.

    내가 당신에게 N '접두사로 일어난 성가신 일을 말해 보자 - 나는 이틀 동안 문제를 해결할 수 없습니다.

    내 데이터베이스 데이터 정렬은 SQL_Latin1_General_CP1_CI_AS 데이터입니다.

    그것은 MyCol1라는 열이있는 테이블이 있습니다. 그것은 NVARCHAR입니다

    이 쿼리는 존재 정확한 값과 일치하는 데 실패합니다.

    SELECT TOP 1 * FROM myTable1 WHERE  MyCol1 = 'ESKİ'  
    
    // 0 result
    

    수정을 'N 프리픽스를 사용하여

    SELECT TOP 1 * FROM myTable1 WHERE  MyCol1 = N'ESKİ'  
    
    // 1 result - found!!!!
    

    왜? latin1_general가 않기 때문에 내가 가정에 실패 왜 큰 점 İ이 없습니다.

  3. ==============================

    3.1. 성능 :

    1. 성능 :

    절은 다음과 같이이다 당신의 가정 :

    WHERE NAME='JON'
    

    NAME 열이 NVARCHAR 또는 NCHAR 이외의 다른 유형 인 경우에, 당신은 N 접두사를 지정하지 않아야합니다. 이름 열 유형 NVARCHAR 또는 NCHAR 인 경우 그러나, 당신은 'JON은'비 유니 코드로 처리되면, N 접두사를 지정하지 않은 경우. 이 수단 NAME 열 및 문자열 'JON'의 데이터 형식이 다릅니다 및 SQL Server 그래서 암시 적으로 다른 하나의 피연산자의 형식을 변환합니다. 는 SQL Server는 문자의 형식을 변환하는 경우 컬럼의 유형에 다음이 더 문제가 없지만, 그것이 않는 경우 컬럼의 인덱스 (있는 경우)를 사용할 수 실 거예요 때문에 성능 다음 다른 방법은 다칠 것입니다.

    2. 문자 세트 :

    열이 형 NVARCHAR 또는 NCHAR의 경우 WHERE 기준 / UPDATE / INSERT 절에 문자열을 지정하면서, 다음 항상 접두사 N을 사용합니다. (- 예 - 국제 문자와 같은)이 작업을 수행하지 않고 당신의 문자열에있는 문자 중 하나는 유니 코드 인 경우는 실패하거나 데이터 손상을 겪게됩니다.

  4. ==============================

    4.값을 가정하면 아니라 우리는 ''N을 사용하고 있는지에 대한 NVARCHAR 유형입니다

    값을 가정하면 아니라 우리는 ''N을 사용하고 있는지에 대한 NVARCHAR 유형입니다

  5. from https://stackoverflow.com/questions/10025032/what-is-the-meaning-of-the-prefix-n-in-t-sql-statements-and-when-should-i-use-it by cc-by-sa and MIT license