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