UserId TeamId IsTeamCaptain이라는 세 개의 열이있는 테이블이 있다고 가정 해 보겠습니다. TeamId 당 IsTeamCaptain 열에 '참'값이 하나 뿐인 것을 어떻게 확인할 수 있습니까? 그래서 저는 TeamId 1에 속한 5 개의 다른 UserId를 가지고 있다고 가정 해 봅니다. 그런 다음이 5 개에는 'true'가 하나 뿐이지 만 나머지는 'false'여야합니다.테이블에있는 고유 한 값
0
A
답변
3
이 설정에 고유 필터링 된 인덱스 만들기
0
CREATE TABLE [dbo].[SampleTable](
[UserID] [int] NOT NULL,
[TeamID] [int] NOT NULL,
[IsTeamCaptain] [bit] NOT NULL)
go
create trigger triu_SampleTable on SampleTable
instead of insert, update
as
begin
set nocount on
declare @userid int, @teamid int, @isteamcaptain bit, @counter int
declare cur cursor local fast_forward for
select userid, teamid, isteamcaptain from inserted
open cur
fetch next from cur into @userid, @teamid, @isteamcaptain
while @@fetch_status = 0
begin
if @isteamcaptain = 0
insert into Sampletable(userid, teamid, isteamcaptain)
values(@userid, @teamid, @isteamcaptain)
if @isteamcaptain = 1
if exists(select * from SampleTable Where teamid = @teamid and isteamcaptain = 1)
raiserror('Not allow to add more than 1 captain per team',16,1)
else
insert into Sampletable(userid, teamid, isteamcaptain)
values(@userid, @teamid, @isteamcaptain)
fetch next from cur into @userid, @teamid, @isteamcaptain
end
close cur
deallocate cur
end
Go
는 트리거가 우리 테이블에의 (필터링 된 인덱스는 SQL 서버 2008에서 소개)
관련 문제
- 1. 테이블에있는 모든 고유 한 값 쌍을 찾는 방법은 무엇입니까?
- 2. 고유 한 id 값 (html)
- 3. SharePoint : 고유 한 열 값
- 4. 고유 값 해시 = 고유 해시?
- 5. SQL에서 고유 한 값 쌍을 어떻게 계산합니까?
- 6. R - 고유 한 값 조합으로 계산
- 7. 일대 다 테이블 관계의 고유 한 값?
- 8. XSLT : 고유 한 속성 값 추출
- 9. 적용 및 고유 한 NA 값 처리
- 10. SQLAlchemy/Elixir에서 고유 한 열 값 선택
- 11. C#을 foreach 문은 고유 한 값
- 12. Django - ForeignKey에서 고유 한 값 선택
- 13. 고유 값
- 14. 부분적으로 고유 한/고유 한 행을 반환합니다.
- 15. 고유 한 대 오라클의 고유 한 키워드
- 16. '고유 한 키'또는 '고유 한 키'색인
- 17. 고유 한 문자열을 고유 한 정수로 변환
- 18. 고유 값 필터가있는 XtraGrid
- 19. ExtJs ComboBox 고유 값
- 20. sql 고유 값
- 21. 배열 고유 값
- 22. 고유 한 문자로 분할
- 23. XSL 고유 키 값
- 24. 평균 값 및 고유 값 선택 SQL
- 25. 재정의 고유 인덱스 값
- 26. MATLAB의 고유 값
- 27. odata로 고유 값 선택
- 28. 매핑에서 고유 값 검색
- 29. jquery가있는 고유 속성 값
- 30. 고유 값 코드 찾기
나는 그것으로 볼 것입니다, 감사합니다! –