কীভাবে টি-এসকিউএল থেকে বর্তমান উদাহরণের নাম পাবেন


90

আমি কীভাবে টি-এসকিউএল স্ক্রিপ্ট ব্যবহার করে বর্তমান সংযোগের এসকিউএল সার্ভার সার্ভার এবং উদাহরণের নাম পেতে পারি?


গৃহীত উত্তর সঠিক। SELECT @@SERVERNAMEব্যবহার করে সংযোগের জন্য প্রয়োজনীয় ফলাফল তৈরি করে sqlcmd -S। যদি এটি ডিফল্ট এমএসএসকিউএসএলএসভিআর উদাহরণ হয় তবে এটি অবশ্যই -S প্যারামিটারে নির্দিষ্ট করা উচিত। এটি 2017 14.0.2002.14 বিকাশকারী সংস্করণ, -৪-বিট।
শয়নকামরা

উত্তর:


166

সবেমাত্র উত্তরটি খুঁজে পেয়েছে, এই এসও প্রশ্নে (আক্ষরিক, প্রশ্নের অভ্যন্তরে, কোনও উত্তর নয়):

SELECT @@servername

সার্ভারনেম-উদাহরণটি প্রদান করে যতক্ষণ না এটি ডিফল্ট উদাহরণ নয়

SELECT @@servicename

উদাহরণস্বরূপ নামটি প্রদান করে, যদিও এটি ডিফল্ট (এমএসএসকিউএসএল সার্ভার) হয়


4
@ ব্লাস্টো, সার্ভারে যখন উদাহরণটি ডিফল্ট হয় তখন এটি আচরণ বলে মনে হয়। একটি নামযুক্ত উদাহরণ দিয়ে চেষ্টা করুন। এটি দেখুন: টেকনিকট.মাইক্রোসফট.ইন- ইউএস
গিলারমো

10
ভুল, @@ সার্ভারনেম ব্যবহার আপনাকে একটি ভুল উত্তর দিতে পারে। নির্বাচিত কনভার্ট (sysname, SERVERPROPERTY ('servername')) সঠিক উত্তর। @@ সার্ভারনাম এসকিউএল ক্লাস্টারের নাম রিপোর্ট করে, অন্যদিকে সার্ভারপ্রোপার্টি ('সার্ভারনেম') উইন্ডোজ ক্লাস্টারের নাম জানায়। আপনার ডিবিতে সংযুক্ত হওয়ার জন্য আপনার উইন্ডোজ ক্লাস্টারের নাম প্রয়োজন (উইন্ডোজ ক্লাস্টারের নামটি এসকিউএল ক্লাস্টারের নাম থেকে আলাদা হতে পারে; সাধারণত আপনি যখন অন্য কোনও মেশিনে একটি নতুন এসকিএল-সার্ভার সংস্করণ ইনস্টল করেন তখন ঘটে থাকে) (@@ সার্ভারনেম = পরিবেশে.ম্যাচাইননাম) এবং পুরাতন নামটি রাখতে চান যাতে আপনাকে সমস্ত কনফিগার পরিবর্তন করতে না হয়)।
স্টিফান স্টেইগার

4
@ স্টেফানস্টেইগার লিঙ্কযুক্ত এসও প্রশ্নের গৃহীত উত্তরটি আপনি যে সমাধানটি উপস্থাপন করেছেন তা ইঙ্গিত করে, তবে মন্তব্যগুলি ইঙ্গিত দেয় যে এটি কিছু লোকের পক্ষে কার্যকর হয় না।
ট্রাইপড

17

এটি সম্পর্কে:

EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
                   @key='SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQl',
                   @value_name='MSSQLSERVER'

এটি উদাহরণস্বরূপ নামটিও পাবে। nullডিফল্ট উদাহরণ:

SELECT SERVERPROPERTY ('InstanceName')

http://technet.microsoft.com/en-us/library/ms174396.aspx


10
সার্ভারপ্রোপার্টি নির্বাচন করুন ('ইনস্ট্যান্সনাম') আমাকে একটি শূন্যতা দেয়।
বাষ্প

4
পরিবর্তে সিলেক্ট কনভার্ট (sysname, SERVERPROPERTY ('servername')) ব্যবহার করুন;
স্টিফান স্টেইগার

4
@ স্টিম: সম্ভবত এটি ডিফল্ট-দৃষ্টান্ত।
স্টিফান স্টেইগার

10

SELECT @@servername হিসাবে আপনি তথ্য দেবে server/instanceName

শুধুমাত্র পেতে instanceNameআপনার select @@ServiceNameজিজ্ঞাসা চালানো উচিত ।


প্রথমত, আপনার স্ল্যাশটি ভুল উপায়ে রয়েছে। সঠিক ফর্মটি "সার্ভার-উদাহরণ" \ দ্বিতীয়ত, এটি সর্বদা সত্য নয় যে @@ সার্ভারনেম আপনাকে সার্ভার এবং উদাহরণ উভয়ই দেবে কারণ যখন কেবলমাত্র একক উদাহরণ থাকবে কেবল এটি "সার্ভার" ফিরে আসবে।
রবিনো

8

আমি এটি খুঁজে পেয়েছি:

EXECUTE xp_regread
        @rootkey = 'HKEY_LOCAL_MACHINE',
        @key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
        @value_name = 'InstalledInstances'

এটি আপনাকে আপনার সার্ভারে ইনস্টল করা সমস্ত দৃষ্টান্তের তালিকা দেবে।


ServerNameসম্পত্তির SERVERPROPERTYফাংশন এবং @@SERVERNAMEঅনুরূপ তথ্য জানায়। ServerNameসম্পত্তি উইন্ডোজ সার্ভার ও উদাহরণস্বরূপ নাম একসঙ্গে অনন্য সার্ভার উদাহরণস্বরূপ আপ করতে প্রদান করে। @@SERVERNAMEবর্তমানে কনফিগার করা স্থানীয় সার্ভারের নাম সরবরাহ করে।

এবং বর্তমান সার্ভারের জন্য মাইক্রোসফ্ট উদাহরণ হ'ল:

SELECT CONVERT(sysname, SERVERPROPERTY('servername'));

যখন একটি উইন্ডোজ সার্ভারে এসকিউএল সার্ভারের একাধিক ইনস্টল ইনস্টল করা থাকে তখন এই দৃশ্যটি কার্যকর হয় এবং বর্তমান সংযোগ দ্বারা ব্যবহৃত ক্লায়েন্টকে অবশ্যই একই সংযোগে অন্য একটি সংযোগ খুলতে হবে।


কনভার্ট নির্বাচন করুন (sysname, সার্ভারপ্রাইটি ('সার্ভারনেম')); সঠিক উত্তর
স্টেফান স্টিগার

8

শুধু উদাহরণের নামেই থামবে কেন? আপনি নিম্নলিখিতটি দিয়ে আপনার এসকিউএল সার্ভার পরিবেশের তালিকা তৈরি করতে পারেন:

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

4
গুড স্টাফ নেট, আমার একই রকম আরও বর্ধিত ইনভেন্টরি স্ক্রিপ্ট রয়েছে। ইমেলের মাধ্যমে অনুলিপিটির জন্য আমার সাথে যোগাযোগ করুন ... স্ক্রিপ্টটি এই থ্রেডটির পক্ষে মনোযোগ দিতে হবে।
হ্যাঙ্ক ফ্রিম্যান

2

আপনার সাথে সংযুক্ত থাকা সার্ভারের উদাহরণ এবং উদাহরণটি পেতে:

select * from Sys.Servers

সংযুক্ত সার্ভারের যে ডাটাবেসগুলির তালিকা পেতে:

SELECT * from sys.databases;

1

রেজিস্ট্রি প্রশ্নগুলিতে কিছু স্পষ্টতা যোগ করতে। তারা কেবলমাত্র বর্তমান দৃষ্টান্তের জন্য মিলে যাওয়া সাক্ষরতার উদাহরণগুলি (32 বা 64) তালিকাভুক্ত করে।

64৪-বিট ওএসে 32-বিট এসকিউএল উদাহরণগুলির জন্য আসল রেজিস্ট্রি কীটি হ'ল:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server

আপনি 32-বিট উদাহরণগুলিও পেতে 64-বিট উদাহরণে এটিকে জিজ্ঞাসা করতে পারেন। 32-বিট উদাহরণটি Wow6432 নোডের মধ্যে সীমাবদ্ধ বলে মনে হচ্ছে তাই -৪-বিট রেজিস্ট্রি ট্রিটি পড়তে পারে না।


0

দৃষ্টান্তের নাম সন্ধানের জন্য অন্য পদ্ধতি - ডেটাবেস নামটিতে ডান ক্ল্যাক করুন এবং বৈশিষ্ট্যগুলি নির্বাচন করুন, এই অংশে আপনি বাম নিচের কোণায় সংযোগের বৈশিষ্ট্য দেখতে পাবেন, ক্লিক করুন তারপরে আপনি ইনস্ট্যান্সের নামটি দেখতে পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.