2010-07-17 3 views

답변

3

이 sp_helplogins를 사용하지 마십시오 : 당신이 sp_helplogins를의 두 번째 결과 집합을 원하는 경우에 sys.server_principals

SELECT * FROM sys.server_principals WHERE name = 'bob' 

를 사용하여, 당신은 임시 테이블만이 트랩 1 차 결과 집합을로드하기 때문에 C# 또는 뭔가를 사용해야 할 것입니다.

sys.server_principals의 등가도

참고 sys.database_principals입니다 : 대한 db_owner 이미 모든 데이터베이스에 있습니다. 너 진짜로 뭘하려는거야?

편집, 주석 후, 뭔가 같은

:

EXEC sp_MSForEachDb ' 
USE ? 
IF DATABASE_PRINCIPAL_ID (''myloginname'') IS NOT NULL 
    EXEC sp_addrolemember ''db_datareader'', ''myloginname'' 
' 
+0

특정 사용자에게 속한 데이터베이스를 찾고 스크립트 아래에서 실행하고 싶습니다. USE DbName GO EXEC sp_addrolemember db_datareader, myloginname GO Stan

1

sproc의 결과 집합을 새 테이블로 전환 할 수 있습니다 (예 : sproc).

create table #results (...) 
insert into #results execute myproc 
select * from #results where ... 

캐스팅 오류를 피하기 위해 결과 집합 데이터 형식을 매우 정확하게 리버스 엔지니어링해야하기 때문에 조금 비방적입니다.

+1

SP가이 결과 집합을 반환하는 경우는 어떻게? – Stan

+0

SP 출력 결과 세트를 수정해야 할 경우 사람들은 무엇을 할 것입니까? – Stan

+1

방금 ​​MSDN을 확인한 결과 모든 결과 집합이 하나의 테이블에로드 된 것처럼 보입니다. 결과 집합이 열 정의에있어서 두려운 점이 다르다면 아무 소용이 없습니다. –

관련 문제