2012-01-30 3 views

답변

0

SQL 서버의 데이터베이스가 sys.sysdatabases에서 열 status에서 검색 할 수 있습니다 오프라인인지 아닌지 사실을 무시해야 온라인 SQL Server에서 데이터베이스를합니다. 다음 SQL은 이론이 당신에게 얻어야한다 :

SELECT name FROM sys.sysdatabases WHERE NOT status & 512 = 512; 

(내가 그것을 테스트하지 않았다하지만 당신은 아이디어를 얻을합니다.)

자세한 것은 http://msdn.microsoft.com/de-de/library/ms179900(v=sql.90).aspx를 참조하십시오.

+0

이제 이미 특정 열이하려면 sys.databases을 사용하십시오. 상태를 구문 분석하지 않거나 sys.sysdatabases를 사용하지 마십시오. – gbn

2

온라인 데이터베이스 만 선택할 수있는 조건을 입력해야합니다.

SELECT * 
FROM sys.databases db WHERE 
db.state = 0 

// O for online 모든 주를 여기에서 확인하십시오.

3

당신은 state 열을 찾고 있습니다 - 당신은 온라인으로 만 데이터베이스를 원하는 그렇다면 MSDN documentation is your friend always!

state: tinyint 

0 = ONLINE 
1 = RESTORING 
2 = RECOVERING 
3 = RECOVERY_PENDING 
4 = SUSPECT 
5 = EMERGENCY 
6 = OFFLINE 

, 경우 MSSQL에

SELECT (columns) FROM sys.databases WHERE state = 0 
0

을 사용 - 서버는 다음과 같은 성명

select state , state_desc from sys.databases 
시도

그러면 데이터베이스의 현재 상태가 표시됩니다.

0
select name, convert(varchar(20),databasepropertyex(name, 'Status')) status 
from master.dbo.sysdatabases 
order by name 
-1
SELECT * 
FROM sys.databases db WHERE 
db.state = 0 and owner_sid <> 0x01 

당신은 시스템 데이터베이스 목록 만 사용자 데이터베이스를 건너 뛸 수 있습니다

+0

대답을 자세히 설명해 주시겠습니까? –

+0

이것이 이전 답변에 어떤 내용이 추가되는지는 알 수 없습니까? 또한 코드 블록에 넣으려면 코드 네 칸을 들여 씁니다. – Anders

관련 문제