SR0009: 가변 길이의 크기가 1 또는 2인 형식을 사용하지 않습니다.

규칙 ID

SR0009

범주

Microsoft.Design

변경 수준

주요 변경

원인

하나 이상의 가변 길이 데이터 형식 길이가 1 또는 2입니다.

규칙 설명

VARCHAR, NVARCHAR 및 VARBINARY 같은 변수 길이의 데이터 형식을 사용할 때는 데이터 형식에 저장된 값의 길이를 추적하는 추가 저장 비용이 초래됩니다. 또한 가변 길이의 열은 고정 길이의 모든 열 다음에 저장되어 성능이 저하될 수 있습니다.

참고

VARCHAR 같은 가변 길이 형식을 선언하지만 길이를 지정하지 않은 경우 경고가 나타납니다. 지정하지 않으면 기본 길이는 1 있기 때문에 이 경고가 발생합니다.

위반 문제를 해결하는 방법

형식의 길이가 매우 작고(크기 1 또는 2) 일관성이 있는 경우 CHAR, NCHAR 및 BINARY 같은 고정 길이의 형식으로 선언합니다.

경고를 표시하지 않는 경우

이 경고는 반드시 표시해야 합니다.

예제

이 예제에서는 두 개의 테이블에 대한 정의를 보여 줍니다. 첫 번째 테이블은 길이가 2인 가변 길이의 문자열을 선언합니다. 두 번째 테이블은 대신 경고를 방지할 수 있는 고정된 길이의 문자열을 선언합니다.

CREATE TABLE [dbo].[TableWithWarning]
( 
[ID] INT NOT NULL IDENTITY(0, 1), 
[c1] INT NOT NULL PRIMARY KEY, 
[c2] INT,
[c3] INT,
[SmallString] VARCHAR(2)
)
ON [PRIMARY]

CREATE TABLE [dbo].[FixedTable]
( 
[ID] INT NOT NULL IDENTITY(0, 1), 
[c1] INT NOT NULL PRIMARY KEY, 
[c2] INT,
[c3] INT,
[SmallString] CHAR(2)
)
ON [PRIMARY]

가변 길이 형식을 위한 데이터는 물리적으로 고정 길이를 위한 데이터 다음에 저장됩니다. 따라서 비어 있지 않은 테이블의 열을 가변 길이에서 고정 길이로 변경하는 경우 데이터가 이동합니다.

참고 항목

개념

데이터베이스 코드를 분석하여 코드 품질 향상