반응형
저장 프로시저의 테이블에 있는 복합 기본 키 변수
저장 프로시저를 처음 사용하여 테이블 변수에 복합 기본 키를 추가하려고 합니다.
DECLARE @statistictemp TABLE (
MajorName VARCHAR(50) NOT NULL,
SubName VARCHAR(50) NOT NULL,
DetailedName VARCHAR(50) NOT NULL,
UniversityID SMALLINT NOT NULL,
StatisticValue DECIMAL(9,3)
);
ALTER TABLE @statistictemp
ADD CONSTRAINT pk_statistictemp
PRIMARY KEY (MajorName, SubName, DetailedName, UniversityID);
에 대한 오류가 발생합니다.ALTER TABLE @statistictemp
격언
Incorrect syntax near '@statistictemp'. Expecting ID, QUOTED_ID, or '.'.
내가 여기서 뭘 잘못하고 있는 거지?복합 기본 키를 테이블 변수에 추가하려면 어떻게 해야 합니까?
다음과 같이 할 수 있습니다.
DECLARE @statistictemp TABLE (
MajorName VARCHAR(50) NOT NULL,
SubName VARCHAR(50) NOT NULL,
DetailedName VARCHAR(50) NOT NULL,
UniversityID SMALLINT NOT NULL,
StatisticValue DECIMAL(9,3),
PRIMARY KEY (MajorName, SubName, DetailedName, UniversityID)
);
중복 항목을 삽입하여 기본 키 제약 조건이 작동하는지 테스트할 수 있습니다. 예:
INSERT INTO @statistictemp(MajorName, SubName, DetailedName, UniversityID) SELECT 'a','b','c',1
INSERT INTO @statistictemp(MajorName, SubName, DetailedName, UniversityID) SELECT 'a','b','c',1
두 번째 문은 오류를 발생시킵니다.
Msg 2627, 레벨 14, 상태 1, 라인 13
Primary KEY 제약 조건 'PK_#1EA48E8_B595483D208CD6 위반FA'. 개체 'dbo'에 중복 키를 삽입할 수 없습니다.@열풍'
문이 종료되었습니다.
언급URL : https://stackoverflow.com/questions/9323533/composite-primary-key-on-table-variable-in-stored-procedure
반응형
'programing' 카테고리의 다른 글
벡터에서 x 값을 사용하여 요소 수 (0) | 2023.07.07 |
---|---|
파일을 역순으로 읽는 방법은? (0) | 2023.07.07 |
Vuex 마운트되거나 생성된 후크에 대한 상태 데이터에 액세스하는 방법은 무엇입니까? (0) | 2023.07.07 |
숫자 열을 배열로 읽는 가장 빠른 방법 (0) | 2023.07.07 |
sql plus에서 함수 실행 (0) | 2023.07.07 |