Für alle diejenigen, die noch wissen was die DOS Eingabeaufforderung ist :)
net start | find "MSSQL"
MSSQLSERVER
MSSQLServerOLAPService (falls man die Analysis Services installiert hat)
Hat man hingegen benannte Instanzen sieht das Ganze etwas so aus:
MSSQL$FRANK
Mit T-SQL kann man dies mit
create table instance_t
(
col1 varchar(256)
)
insert into instance_t exec master..xp_cmdshell 'net start | find "MSSQL"'
select cast((col1) as varchar(30)) Installierte_Instanzen from instance_t
drop table instance_t
Installierte_Instanzen
------------------------------
MSSQL$FRANK
NULL
bewerkstelligen.
Anmerkung 24.09.2004: 'net start | find MSSQL' funktioniert natürlich nur, wenn der SQL Server auch gerade läuft. Falls man ein Faible für's Undokumentierte hat kann man auch folgendes machen:
EXEC master..xp_regread
'HKEY_LOCAL_MACHINE',
'Software\Microsoft\Microsoft SQL Server',
'InstalledInstances'
Value Value Data
InstalledInstances - Item #1 FRANK NULL
(1 row(s) affected)
Danke an Uwe Stump für diesen Hinweis!