T-SQL स्क्रिप्ट का उपयोग करके मैं SQL सर्वर सर्वर और वर्तमान कनेक्शन का नाम कैसे प्राप्त कर सकता हूं?
T-SQL स्क्रिप्ट का उपयोग करके मैं SQL सर्वर सर्वर और वर्तमान कनेक्शन का नाम कैसे प्राप्त कर सकता हूं?
जवाबों:
बस उत्तर मिला, इस SO प्रश्न में (शाब्दिक रूप से, प्रश्न के अंदर, कोई उत्तर नहीं):
SELECT @@servername
जहाँ तक यह डिफ़ॉल्ट उदाहरण नहीं है तब तक servername \ आवृत्ति देता है
SELECT @@servicename
उदाहरण नाम लौटाता है, भले ही यह डिफ़ॉल्ट (MSSQLSERVER) हो
इस बारे में कैसा है:
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl',
@value_name='MSSQLSERVER'
इसे इंस्टेंस नाम भी मिलेगा। null
डिफ़ॉल्ट उदाहरण का अर्थ है:
SELECT SERVERPROPERTY ('InstanceName')
SELECT @@servername
के रूप में आप डेटा दे देंगे server/instanceName
केवल पाने के लिए instanceName
आपको select @@ServiceName
क्वेरी चलानी चाहिए ।
मुझे मिला:
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
@value_name = 'InstalledInstances'
यह आपको आपके सर्वर में स्थापित सभी उदाहरणों की सूची देगा।
फ़ंक्शन की
ServerName
संपत्तिSERVERPROPERTY
और@@SERVERNAME
समान जानकारी लौटाते हैं।ServerName
संपत्ति Windows सर्वर और उदाहरण के नाम है कि एक साथ अद्वितीय सर्वर उदाहरण बना देता है।@@SERVERNAME
वर्तमान में कॉन्फ़िगर किया गया स्थानीय सर्वर नाम प्रदान करता है।
और वर्तमान सर्वर के लिए Microsoft उदाहरण है:
SELECT CONVERT(sysname, SERVERPROPERTY('servername'));
जब Windows सर्वर पर SQL सर्वर के कई उदाहरण स्थापित होते हैं, तो यह परिदृश्य उपयोगी होता है, और क्लाइंट को वर्तमान कनेक्शन द्वारा उपयोग किए गए समान उदाहरण के लिए कोई अन्य कनेक्शन खोलना होगा।
सिर्फ उदाहरण के नाम पर क्यों रुकें? आप निम्न के साथ अपने SQL सर्वर वातावरण को सूचीबद्ध कर सकते हैं:
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
सर्वर और उदाहरण की सूची प्राप्त करने के लिए जो आप से जुड़े हैं:
select * from Sys.Servers
सर्वर से जुड़े डेटाबेस की सूची प्राप्त करने के लिए:
SELECT * from sys.databases;
सिर्फ रजिस्ट्री प्रश्नों के लिए कुछ स्पष्टीकरण जोड़ने के लिए। वे केवल वर्तमान उदाहरण के लिए मिलान बिटनेस (32 या 64) के उदाहरणों को सूचीबद्ध करते हैं।
64-बिट OS पर 32-बिट SQL इंस्टेंस के लिए वास्तविक रजिस्ट्री कुंजी है:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
आप 64-बिट इंस्टेंस पर क्वेरी कर सकते हैं ताकि सभी 32-बिट इंस्टेंस भी मिल सकें। 32-बिट का उदाहरण Wow6432Node के लिए प्रतिबंधित लगता है इसलिए 64-बिट रजिस्ट्री ट्री को नहीं पढ़ सकता है।
SELECT @@SERVERNAME
का उपयोग कर कनेक्ट करने के लिए आवश्यक परिणाम पैदा करता हैsqlcmd -S
। यदि यह डिफ़ॉल्ट MSSQLSERVER उदाहरण है, तो इसे -S पैरामीटर में निर्दिष्ट नहीं किया जाना चाहिए। यह 2017 14.0.2002.14 डेवलपर संस्करण, 64-बिट पर है।