sys.databases
을 사용하여 SQL Server에서 데이터베이스를 가져올 수 있지만 오프라인 데이터베이스도 나열합니다. 데이터베이스 온라인/오프라인 상태를 나타내는 플래그를 계속 확인합니다.SQL Server에서 데이터베이스 목록을 가져 오는 방법은 무엇입니까?
아무도 도와 줄 수 있습니까?
난 그냥 오프라인들
sys.databases
을 사용하여 SQL Server에서 데이터베이스를 가져올 수 있지만 오프라인 데이터베이스도 나열합니다. 데이터베이스 온라인/오프라인 상태를 나타내는 플래그를 계속 확인합니다.SQL Server에서 데이터베이스 목록을 가져 오는 방법은 무엇입니까?
아무도 도와 줄 수 있습니까?
난 그냥 오프라인들
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를 참조하십시오.
온라인 데이터베이스 만 선택할 수있는 조건을 입력해야합니다.
SELECT *
FROM sys.databases db WHERE
db.state = 0
// O for online 모든 주를 여기에서 확인하십시오.
당신은 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
을 사용 - 서버는 다음과 같은 성명
select state , state_desc from sys.databases
시도
그러면 데이터베이스의 현재 상태가 표시됩니다.
select name, convert(varchar(20),databasepropertyex(name, 'Status')) status
from master.dbo.sysdatabases
order by name
SELECT *
FROM sys.databases db WHERE
db.state = 0 and owner_sid <> 0x01
당신은 시스템 데이터베이스 목록 만 사용자 데이터베이스를 건너 뛸 수 있습니다
대답을 자세히 설명해 주시겠습니까? –
이것이 이전 답변에 어떤 내용이 추가되는지는 알 수 없습니까? 또한 코드 블록에 넣으려면 코드 네 칸을 들여 씁니다. – Anders
이제 이미 특정 열이하려면 sys.databases을 사용하십시오. 상태를 구문 분석하지 않거나 sys.sysdatabases를 사용하지 마십시오. – gbn