Bagaimana cara mendapatkan server SQL Server dan nama instance dari koneksi saat ini, menggunakan skrip T-SQL?
sql
sql-server
tsql
sql-server-2008r2-express
Guillermo Gutiérrez
sumber
sumber
SELECT @@SERVERNAME
menghasilkan hasil yang dibutuhkan untuk terhubung menggunakansqlcmd -S
. Jika itu adalah contoh MSSQLSERVER default, maka itu harus -tidak- ditentukan dalam parameter -S. Ini ada pada edisi 2017 14.0.2002.14 Pengembang, 64-bit.Jawaban:
Baru saja menemukan jawabannya, dalam pertanyaan SO ini (secara harfiah, di dalam pertanyaan, bukan jawaban apa pun):
SELECT @@servername
mengembalikan nama server \ instance sejauh ini bukan instance default
SELECT @@servicename
mengembalikan nama contoh, meskipun ini adalah default (MSSQLSERVER)
sumber
Bagaimana dengan ini:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl', @value_name='MSSQLSERVER'
Ini akan mendapatkan nama instance juga.
null
berarti contoh default:SELECT SERVERPROPERTY ('InstanceName')
http://technet.microsoft.com/en-us/library/ms174396.aspx
sumber
SELECT @@servername
akan memberi Anda data sebagaiserver/instanceName
Untuk mendapatkan hanya
instanceName
Anda yang harus menjalankanselect @@ServiceName
kueri.sumber
Aku menemukan ini:
EXECUTE xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\Microsoft\Microsoft SQL Server', @value_name = 'InstalledInstances'
Itu akan memberi Anda daftar semua contoh yang dipasang di server Anda.
Dan contoh Microsoft untuk server saat ini adalah:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
sumber
Mengapa berhenti di nama instance saja? Anda dapat menginventarisasi lingkungan SQL Server Anda dengan berikut ini:
SELECT SERVERPROPERTY('ServerName') AS ServerName, SERVERPROPERTY('MachineName') AS MachineName, CASE WHEN SERVERPROPERTY('InstanceName') IS NULL THEN '' ELSE SERVERPROPERTY('InstanceName') END AS InstanceName, '' as Port, --need to update to strip from Servername. Note: Assumes Registered Server is named with Port SUBSTRING ( (SELECT @@VERSION),1, CHARINDEX('-',(SELECT @@VERSION))-1 ) as ProductName, SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ProductMajorVersion') AS ProductMajorVersion, SERVERPROPERTY('ProductMinorVersion') AS ProductMinorVersion, SERVERPROPERTY('ProductBuild') AS ProductBuild, SERVERPROPERTY('Edition') AS Edition, CASE SERVERPROPERTY('EngineEdition') WHEN 1 THEN 'PERSONAL' WHEN 2 THEN 'STANDARD' WHEN 3 THEN 'ENTERPRISE' WHEN 4 THEN 'EXPRESS' WHEN 5 THEN 'SQL DATABASE' WHEN 6 THEN 'SQL DATAWAREHOUSE' END AS EngineEdition, CASE SERVERPROPERTY('IsHadrEnabled') WHEN 0 THEN 'The Always On Availability Groups feature is disabled' WHEN 1 THEN 'The Always On Availability Groups feature is enabled' ELSE 'Not applicable' END AS HadrEnabled, CASE SERVERPROPERTY('HadrManagerStatus') WHEN 0 THEN 'Not started, pending communication' WHEN 1 THEN 'Started and running' WHEN 2 THEN 'Not started and failed' ELSE 'Not applicable' END AS HadrManagerStatus, CASE SERVERPROPERTY('IsSingleUser') WHEN 0 THEN 'No' ELSE 'Yes' END AS InSingleUserMode, CASE SERVERPROPERTY('IsClustered') WHEN 1 THEN 'Clustered' WHEN 0 THEN 'Not Clustered' ELSE 'Not applicable' END AS IsClustered, '' as ServerEnvironment, '' as ServerStatus, '' as Comments
sumber
Untuk mendapatkan daftar server dan instance yang Anda sambungkan:
select * from Sys.Servers
Untuk mendapatkan daftar database yang memiliki server yang terhubung:
SELECT * from sys.databases;
sumber
Hanya untuk menambahkan beberapa klarifikasi ke kueri registri. Mereka hanya mencantumkan instance bitness yang cocok (32 atau 64) untuk instance saat ini.
Kunci registri sebenarnya untuk instance SQL 32-bit di OS 64-bit adalah:
Anda dapat menanyakan ini pada instance 64-bit untuk mendapatkan semua instance 32-bit juga. Contoh 32-bit tampaknya terbatas pada Wow6432Node sehingga tidak dapat membaca pohon registri 64-bit.
sumber
Metode lain untuk menemukan nama Instance- Klik kanan pada nama Database dan pilih Properties, di bagian ini Anda dapat melihat properti koneksi di sudut kiri bawah, klik itu kemudian Anda dapat melihat nama Instance.
sumber