2012-03-02 3 views
0

웹 응용 프로그램 내의 SQL Server 인스턴스에서 비즈니스 논리 작업을 수행하는 저장된 procs가 있습니다. 무언가가 잘못되면 모든 사람들이 오류 심각도 및 문제 설명을 추적하는 특정 테이블에 메시지를 대기열에 넣습니다 ('경고'라고 가정 해 봅시다). 나는 웹 애플리케이션이 저장된 procs를 사용하여 실행 마지막에 메시지 테이블을 쿼리 할 수 ​​있지만 적절한 메시지, 즉 특정 세션 또는 특정 연결 중에 작성된 메시지의 목록을 가져올 수 있기를 원한다. 의심의 여지SQL Server에서 웹 스크립트로 세션 ID 전송

  1. 은 웹 응용 프로그램이 DB 상기 메시지 기록에 열 값으로 INSERT에 GUID를 (하지만 어떻게 든 페이지 수준에서 실행되는 여러 저장 발동에 추적 할에 보내, 그래서 나는 경우

    또는

  2. 가 좀 아이디 확인해를 사용할 수있는 경우) "글로벌"뭔가가 필요 응용 프로그램에 의해 열린 연결에 - 그리고 이것은 확실히 더 제정신이 될 것입니다.

    SELECT @sessionid = sessionid FROM sys.something where this = that 
    

몇 가지 힌트를 가지고 : (이것은 의사 코드이다)와 같은 뭔가?

감사합니다 당신은 단순히 다음을 실행할 수 있습니다 SQL 서버에 현재 세션 ID를 검색하려면 아이디어

답변

0

에 대한 많은 :

select @@SPID 

참조 :
http://msdn.microsoft.com/en-us/library/ms189535.aspx

+0

신속하고 유용한 ... :-) 많이 고마워요 – Daniel

+0

...하지만 현재 SPID에 이전 SPID와 동일한 번호가 있다면 어떻게 될까요? 오늘 sspid를 56 일 내고 며칠 전에 다른 사용자가 동일한 sspid를 가지고 있다고 가정 해 봅시다. 나는 고유 한 메시지를 고유하게 식별 할 수 없으므로 이전 메시지도 얻을 수 있습니다. 날짜에 where 절과 함께 사용할 수는 있지만 세션 ID의 고유성 기준을 알지 못합니다. 그 고유성이 부여되는 시간 틀은 무엇입니까? – Daniel

+0

아 그래, 그 질문에 분명하지 않았다;) 당신이 원하는 경우 SP에 일종의 수동으로 관리되는 사용자 ID를 제출해야합니다, 당신은 SQL Server 자체 내 에서이 일을 할 수 없을 것입니다 귀하의 시스템의 각 사용자에 대해 별도의 SQL Server 사용자, 이후 웹 응용 프로그램의 나는이 옵션을 실현 가능성이 의심 – ntziolis

관련 문제