모든 트리거에 SET NOCOUNT ON을 추가해야합니까?


21

당신이 가지고 있어야한다는 것은 매우 일반적인 지식입니다

SET NOCOUNT ON   

새 저장 프로 시저를 만들 때 기본적으로

Microsoft는 2012 년에이를 포함하도록 기본 템플릿을 변경했습니다. 트리거와 동일해야하지만 템플릿에는 포함되지 않았다고 생각했습니다.

이것은 고의적 인 것인가 아니면 단순한 감독입니까?


1
SSMS 테이블 편집기를 통해 값을 편집 한 경우 트리거에 필요합니다. 그렇지 않으면 트리거의 추가 행 수 메시지가 혼동됩니다.
Martin Smith

가장 가능성이 높은 감독입니다. 또한 참조 stackoverflow.com/questions/1483732/set-nocount-on-usage 하십시오
GBN

답변:


24

개인적으로, 나는 그것을 추천 할 것입니다-당신이 무대 뒤에서 추가 작업을하고 있다는 사실을 구체적으로 말하고 싶은 방아쇠가 없다면 트리거하지 않는 이유를 생각할 수 없습니다.

트리거를 작성할 때주의해야 할 사항에 대한 간단한 기사를 작성했으며 다음 중 하나입니다.
http://dave.brittens.org/2012/03/29/writing-well-behaved-triggers/

tl; dr 버전 :

  1. 수다쟁이를 잘라 NOCOUNT를 사용하십시오.
  2. 트리거가 여러 행을 처리 할 수 ​​있는지 확인하십시오.
  3. 무한한 트리거 캐스케이드 및 재귀를 방지합니다.
  4. INSERTED 및 DELETED 가상 테이블의 끔찍한 성능을 피하십시오.

URL이 오래되었습니다. 업데이트 된 URL은 다음과 같습니다. dave.brittens.org/blog/writing-well-behaved-triggers.html
Jonathon Watney

잘 잡았습니다. 방금 몇 주 전에 내 사이트를 펠리컨으로 업데이트했습니다. ;)
db2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.