2012-07-03 2 views
0

한 SQL 서버에서 다른 SQL 서버로 데이터를 전송하는 저장 프로 시저를 작성했습니다. 특정 서버에서만 실행되는 저장 프로 시저의 시작 부분에서 논리를 가질 수 있습니까? 예를 들어특정 서버에서 코드 실행

:

If IP!="100.xxx.xxx.xxx" then 
    RaiseError 'You cannot run this procedure from this server 
end if 

내가 알고있는 하나 개의 솔루션은 다른 서버에 시저를 배포하지 않습니다. 그냥 궁금해서 고마워. @@SERVERNAME 인스턴스 이름 정보를 포함 할 수 는 G-

답변

2
IF UPPER(@@SERVERNAME) = 'YOUR_SERVER' 
BEGIN 
    -- do stuff 
END 

참고. 그래서 당신은 말할 수있다 : 당신은 단지 서버 (해당 서버 인스턴스)에 대해 관심이 있다면이 경우에 가상 서버 이름을 노드 이름을 돌려줍니다 불구하고

IF UPPER(@@SERVERNAME) = 'YOUR_SERVER\YOUR_INSTANCE' 
BEGIN 
    -- do stuff 
END 

, 당신은, 다른 속성을 사용할 수 있습니다 클러스터 된 인스턴스의 :

IF UPPER(SERVERPROPERTY('ComputerNamePhysicalNetBIOS')) = 'YOUR_SERVER' 
BEGIN 
    -- do stuff 
END 

가 클러스터 및 해당 클러스터의 예를 제외하고 실행을 방지하기 위해 동일한 코드 당신이 말할 수 원하는 있다면 : 쉬웠다

IF UPPER(@@SERVERNAME) = 'YOUR_SERVER' 
    OR UPPER(@@SERVERNAME) LIKE 'YOUR_SERVER\%' 
BEGIN 
    -- do stuff 
END 
+0

감사합니다 :) – gmang