Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में प्राथमिक कुंजी

सभी प्रमुख RDBMS उत्पादों में, SQL बाधाओं में प्राथमिक कुंजी महत्वपूर्ण भूमिका होती है। वे एक तालिका में मौजूद अभिलेखों को विशिष्ट रूप से पहचानते हैं। इसलिए, हमें प्रदर्शन को बेहतर बनाने के लिए टेबल डिज़ाइन के दौरान प्राथमिक कुंजी सर्वर को सावधानी से चुनना चाहिए।

इस लेख में, हम सीखेंगे कि प्राथमिक कुंजी बाधा क्या है। साथ ही, हम यह भी देखेंगे कि प्राथमिक कुंजी बाधाओं को कैसे बनाया जाए, संशोधित किया जाए या छोड़ा जाए।

SQL सर्वर बाधाएं

SQL सर्वर में, बाधाएं वे नियम हैं जो आवश्यक कॉलम में डेटा दर्ज करने को नियंत्रित करते हैं। बाधाएं डेटा की सटीकता को लागू करती हैं और वह डेटा व्यावसायिक आवश्यकताओं से कैसे मेल खाता है। साथ ही, वे डेटा को अंतिम-उपयोगकर्ताओं के लिए विश्वसनीय बनाते हैं। इसलिए डिज़ाइन चरण . के दौरान सही बाधाओं की पहचान करना महत्वपूर्ण है डेटाबेस या टेबल स्कीमा का।

SQL सर्वर निम्न प्रतिबंध प्रकार का समर्थन करता है डेटा अखंडता को लागू करने के लिए:

प्राथमिक कुंजी बाधाएं रिकॉर्ड की विशिष्टता को लागू करने और रिकॉर्ड को तेज़ी से पहचानने के लिए एक कॉलम या कॉलम के संयोजन पर बनाए जाते हैं। शामिल कॉलम में NULL मान नहीं होने चाहिए। इसलिए, कॉलम पर NOT NULL प्रॉपर्टी को परिभाषित किया जाना चाहिए।

विदेशी कुंजी प्रतिबंध दो तालिकाओं के बीच संबंध बनाने और एक तालिका में मौजूद डेटा को दूसरी तालिका में लागू करने के लिए एकल स्तंभ या स्तंभों के संयोजन पर बनाए जाते हैं। आदर्श रूप से, टेबल कॉलम जहां हमें विदेशी कुंजी बाधाओं के साथ डेटा को लागू करने की आवश्यकता होती है, स्रोत तालिका को SQL या अद्वितीय कुंजी बाधा में प्राथमिक कुंजी के साथ संदर्भित करता है। दूसरे शब्दों में, केवल स्रोत तालिका की प्राथमिक या अनन्य कुंजी बाधाओं में उपलब्ध रिकॉर्ड्स को गंतव्य तालिका में सम्मिलित या अद्यतन किया जा सकता है।

अद्वितीय कुंजी बाधाएं कॉलम डेटा में विशिष्टता को लागू करने के लिए एक कॉलम या कॉलम के संयोजन पर बनाए जाते हैं। वे एक ही परिवर्तन के साथ प्राथमिक कुंजी बाधाओं के समान हैं। प्राथमिक कुंजी और अद्वितीय कुंजी बाधाओं के बीच का अंतर यह है कि बाद वाले को अशक्त पर बनाया जा सकता है कॉलम और उसके कॉलम में एक NULL मान रिकॉर्ड की अनुमति दें।

बाधाओं की जांच करें तार्किक अभिव्यक्ति के माध्यम से शामिल स्तंभों के लिए स्वीकृत डेटा मानों को प्रतिबंधित करके एकल स्तंभ या स्तंभों के संयोजन पर बनाए जाते हैं। विदेशी कुंजी और चेक बाधाओं के बीच अंतर है। विदेशी कुंजी किसी अन्य तालिका की प्राथमिक या अद्वितीय कुंजी से डेटा की जांच करके डेटा अखंडता को लागू करती है। हालांकि, चेक बाधा तार्किक अभिव्यक्ति का उपयोग करके ऐसा करती है।

अब, प्राथमिक कुंजी बाधाओं के माध्यम से चलते हैं।

प्राथमिक कुंजी बाधा

प्राथमिक कुंजी बाधा एकल कॉलम या कॉलम के संयोजन पर बिना किसी NULL मान के शामिल कॉलम के अंदर विशिष्टता को लागू करती है।

विशिष्टता को लागू करने के लिए, SQL सर्वर उन स्तंभों पर एक अद्वितीय क्लस्टर इंडेक्स बनाता है जहां प्राथमिक कुंजी बनाई गई थी। यदि कोई मौजूदा संकुल अनुक्रमणिका है, तो SQL सर्वर प्राथमिक कुंजी के लिए तालिका पर एक अद्वितीय गैर-संकुल अनुक्रमणिका बनाता है।

आइए देखें कि हम टी-एसक्यूएल स्क्रिप्ट का उपयोग करके टेबल पर प्राथमिक कुंजी कैसे बनाते हैं, संशोधित करते हैं, ड्रॉप करते हैं, अक्षम करते हैं या सक्षम करते हैं।

प्राथमिक कुंजी बनाएं

हम टेबल बनाने के दौरान या उसके बाद किसी टेबल पर प्राइमरी की बना सकते हैं। इन परिदृश्यों के लिए वाक्यविन्यास थोड़ा भिन्न होता है।

टेबल बनाने के दौरान प्राथमिक कुंजी बनाना

सिंटैक्स नीचे है:

CREATE TABLE SCHEMA_NAME.TABLE_NAME
( 
  COLUMN1 datatype [ NULL | NOT NULL ] PRIMARY KEY,
  COLUMN2 datatype [ NULL | NOT NULL ],
  ...
);

आइए कर्मचारी . नाम की एक तालिका बनाएं मानव संसाधन . में निम्न स्क्रिप्ट के साथ परीक्षण उद्देश्यों के लिए स्कीमा:

CREATE TABLE HumanResources.Employees
( Employee_Id INT IDENTITY NOT NULL PRIMARY KEY,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money
);

हमने सफलतापूर्वक HumanResources.कर्मचारियों . बना लिया है AdventureWorks . पर तालिका डेटाबेस:

हम देख सकते हैं कि ऊपर हाइलाइट किए गए प्राथमिक कुंजी नाम से मेल खाने वाली तालिका पर क्लस्टर इंडेक्स बनाया गया था।

आइए नीचे दी गई स्क्रिप्ट का उपयोग करके तालिका छोड़ें और नए सिंटैक्स के साथ पुनः प्रयास करें।

DROP TABLE HumanResources.Employees

उपयोगकर्ता द्वारा परिभाषित प्राथमिक कुंजी नाम PK_कर्मचारियों वाली तालिका पर SQL में प्राथमिक कुंजी बनाने के लिए , नीचे दिए गए सिंटैक्स का उपयोग करें:

CREATE TABLE HumanResources.Employees
( Employee_Id INT IDENTITY NOT NULL,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money,
  CONSTRAINT PK_Employees PRIMARY KEY (Employee_Id)
);

हमने HumanResources.कर्मचारियों . को बनाया है प्राथमिक कुंजी नाम वाली तालिका PK_कर्मचारी :

तालिका निर्माण के बाद प्राथमिक कुंजी का निर्माण

कभी-कभी, डेवलपर्स या डीबीए प्राथमिक कुंजी के बारे में भूल जाते हैं और उनके बिना टेबल बनाते हैं। लेकिन मौजूदा तालिकाओं पर प्राथमिक कुंजी बनाना संभव है।

आइए HumanResources.कर्मचारियों . को छोड़ दें तालिका और नीचे दी गई स्क्रिप्ट का उपयोग करके इसे फिर से बनाएँ:

DROP TABLE HumanResources.Employees
GO
CREATE TABLE HumanResources.Employees
( Employee_Id INT IDENTITY NOT NULL,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money
);
GO

जब आप इस स्क्रिप्ट को सफलतापूर्वक निष्पादित करते हैं, तो हम HumanResources.Employees . देख सकते हैं बिना किसी प्राथमिक कुंजी या अनुक्रमणिका के बनाई गई तालिका:

PK_कर्मचारी . नामक प्राथमिक कुंजी बनाने के लिए इस टेबल पर, नीचे दिए गए सिंटैक्स का इस्तेमाल करें:

ALTER TABLE <schema_name>.<table_name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY ( <column_name> );

इस स्क्रिप्ट का निष्पादन हमारी टेबल पर प्राथमिक कुंजी बनाता है:

ALTER TABLE HumanResources.Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY (Employee_ID);

एकाधिक कॉलम पर प्राथमिक कुंजी बनाना

हमारे उदाहरणों में, हमने सिंगल कॉलम पर प्राइमरी कीज़ बनाई हैं। अगर हम कई कॉलम पर प्राइमरी की बनाना चाहते हैं, तो हमें एक अलग सिंटैक्स की जरूरत है।

प्राथमिक कुंजी के हिस्से के रूप में कई कॉलम जोड़ने के लिए, हमें केवल कॉलम नामों के अल्पविराम से अलग किए गए मानों को जोड़ना होगा जो कि प्राथमिक कुंजी का हिस्सा होना चाहिए।

तालिका निर्माण के दौरान प्राथमिक कुंजी

CREATE TABLE HumanResources.Employees
( First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money,
  CONSTRAINT PK_Employees PRIMARY KEY (First_Name, Last_Name)
);
GO

तालिका निर्माण के बाद प्राथमिक कुंजी

CREATE TABLE HumanResources.Employees
( First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money
);
GO
ALTER TABLE HumanResources.Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY (First_Name, Last_Name);
GO

प्राथमिक कुंजी छोड़ें

प्राथमिक कुंजी को छोड़ने के लिए, हम नीचे दिए गए सिंटैक्स का उपयोग करते हैं। इससे कोई फर्क नहीं पड़ता कि प्राथमिक कुंजी एकल या एकाधिक स्तंभों पर थी या नहीं।

ALTER TABLE <schema_name>.<table_name>
DROP CONSTRAINT <constraint_name> ;

HumanResources.कर्मचारियों . पर प्राथमिक कुंजी प्रतिबंध को छोड़ने के लिए तालिका, नीचे दी गई स्क्रिप्ट का उपयोग करें:

ALTER TABLE HumanResources.Employees
DROP CONSTRAINT PK_Employees;

प्राथमिक कुंजी को छोड़ने से प्राथमिक कुंजी और प्राथमिक कुंजी निर्माण के साथ बनाए गए क्लस्टर या गैर-क्लस्टर इंडेक्स दोनों को हटा दिया जाता है:

प्राथमिक कुंजी संशोधित करें

SQL सर्वर में, प्राथमिक कुंजियों को संशोधित करने के लिए कोई प्रत्यक्ष आदेश नहीं हैं। हमें मौजूदा प्राथमिक कुंजी को छोड़ने और आवश्यक संशोधनों के साथ इसे फिर से बनाने की आवश्यकता है। इसलिए, प्राथमिक कुंजी को संशोधित करने के चरण हैं:

  1. मौजूदा प्राथमिक कुंजी छोड़ें.
  2. आवश्यक परिवर्तनों के साथ नई प्राथमिक कुंजी बनाएं।

प्राथमिक कुंजी अक्षम/सक्षम करें

कई रिकॉर्ड वाली तालिका पर बल्क लोड करते समय, प्राथमिक कुंजी को अक्षम करें और बेहतर प्रदर्शन के लिए इसे वापस सक्षम करें। चरण नीचे दिए गए हैं:

मौजूदा प्राथमिक कुंजी को नीचे दिए गए सिंटैक्स के साथ अक्षम करें:

ALTER INDEX <index_name> ON <schema_name>.<table_name> DISABLE;

HumanResources.कर्मचारियों . पर प्राथमिक कुंजी को अक्षम करने के लिए तालिका, स्क्रिप्ट है:

ALTER INDEX PK_Employees ON HumanResources.Employees
DISABLE;

मौजूदा प्राथमिक कुंजियाँ सक्षम करें जो अक्षम अवस्था में हैं। हमें नीचे दिए गए सिंटैक्स का उपयोग करके इंडेक्स को फिर से बनाना होगा:

ALTER INDEX <index_name> ON <schema_name>.<table_name> REBUILD;

HumanResources.कर्मचारियों . पर प्राथमिक कुंजी सक्षम करने के लिए तालिका, निम्न स्क्रिप्ट का उपयोग करें:

ALTER INDEX PK_Employees ON HumanResources.Employees
REBUILD;

प्राथमिक कुंजी के बारे में मिथक

SQL सर्वर में प्राथमिक कुंजी से संबंधित नीचे दिए गए मिथकों के बारे में बहुत से लोग भ्रमित हो जाते हैं।

  • प्राथमिक कुंजी वाली तालिका हीप तालिका नहीं है
  • प्राथमिक कुंजियों में भौतिक क्रम में क्रमबद्ध अनुक्रमणिका और डेटा होता है

आइए उन्हें स्पष्ट करें।

प्राथमिक कुंजी वाली तालिका हीप तालिका नहीं है

गहराई में जाने से पहले, आइए हम प्राइमरी की और हीप टेबल की परिभाषा को संशोधित करें।

प्राथमिक कुंजी एक टेबल पर एक क्लस्टर इंडेक्स बनाता है यदि वहां कोई अन्य क्लस्टर इंडेक्स उपलब्ध नहीं है। बिना क्लस्टर इंडेक्स वाली टेबल हीप टेबल होगी।

इन परिभाषाओं के आधार पर, हम समझ सकते हैं कि प्राथमिक कुंजी क्लस्टर इंडेक्स तभी बनाती है जब टेबल पर कोई अन्य क्लस्टर इंडेक्स न हो। यदि कोई मौजूदा संकुल अनुक्रमणिका है, तो प्राथमिक कुंजी निर्माण प्राथमिक कुंजी से मेल खाने वाली तालिका पर एक गैर-संकुल अनुक्रमणिका बनाएगा।

आइए HumanResources.कर्मचारियों . को हटाकर इसकी पुष्टि करें तालिका और इसे फिर से बनाना:

DROP TABLE HumanResources.Employees
GO
CREATE TABLE HumanResources.Employees
( Employee_Id INT IDENTITY NOT NULL,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money,
  CONSTRAINT PK_Employees PRIMARY KEY NONCLUSTERED (Employee_Id)
);
GO

हम प्राथमिक कुंजी (ऊपर देखें) के लिए गैर-अनुक्रमित अनुक्रमणिका विकल्प निर्दिष्ट कर सकते हैं। प्राथमिक कुंजी PK_कर्मचारियों के लिए एक अद्वितीय, गैर-संकुल अनुक्रमणिका के साथ एक तालिका बनाई गई थी

इसलिए, यह तालिका एक प्राथमिक कुंजी होने के बावजूद एक हीप तालिका है।

आइए देखें कि क्या SQL सर्वर प्राथमिक कुंजी के लिए एक गैर-संकुलित अनुक्रमणिका बना सकता है यदि हम गैर-संकुल कीवर्ड निर्दिष्ट नहीं करते हैं प्राथमिक कुंजी निर्माण के दौरान। नीचे दी गई स्क्रिप्ट का प्रयोग करें:

DROP TABLE HumanResources.Employees
GO
CREATE TABLE HumanResources.Employees
( Employee_Id INT IDENTITY NOT NULL,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL,
  DOB DATETIME,
  Dept varchar(100),
  Salary Money
);
GO

-- Create Clustered Index on Employee_Id column before creating Primary Key
CREATE CLUSTERED INDEX IX_Employee_ID ON HumanResources.Employees(First_Name, Last_Name);
GO

-- Create Primary Key on Employee_Id column
ALTER TABLE HumanResources.Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY (Employee_ID);
GO

यहां हमने प्राइमरी की बनाने से पहले अलग से एक क्लस्टर इंडेक्स बनाया है। और एक टेबल में केवल एक क्लस्टर इंडेक्स हो सकता है। इसलिए, SQL सर्वर ने प्राथमिक कुंजी को एक अद्वितीय, गैर-संकुल अनुक्रमणिका के रूप में बनाया है। अभी, टेबल हीप टेबल नहीं है क्योंकि इसमें क्लस्टर इंडेक्स है।

अगर मैंने अपना विचार बदल दिया और क्लस्टर इंडेक्स को First_Name . पर छोड़ दिया और Last_Name नीचे दी गई स्क्रिप्ट का उपयोग करने वाले कॉलम:

DROP INDEX IX_Employee_ID ON HumanResources.Employees;
GO

हमने संकुल सूचकांक को सफलतापूर्वक गिरा दिया है। मानव संसाधन.कर्मचारी तालिका एक हीप तालिका है, भले ही हमारे पास तालिका में प्राथमिक कुंजी उपलब्ध हो:

यह इस मिथक को दूर करता है कि यदि तालिका में कोई संकुल अनुक्रमणिका उपलब्ध नहीं है तो प्राथमिक कुंजी वाली तालिका हीप तालिका हो सकती है।

प्राथमिक कुंजी में एक संकुल अनुक्रमणिका और भौतिक क्रम में क्रमबद्ध डेटा होगा

जैसा कि हमने पिछले उदाहरण से सीखा, SQL में एक प्राथमिक कुंजी में एक गैर-संकुल सूचकांक हो सकता है। उस स्थिति में, अभिलेखों को भौतिक क्रम में क्रमबद्ध नहीं किया जाएगा।

आइए प्राथमिक कुंजी पर क्लस्टर इंडेक्स के साथ तालिका को सत्यापित करें। हम यह जाँचने जा रहे हैं कि क्या यह रिकॉर्ड को भौतिक क्रम में क्रमबद्ध करता है।

HumanResources.कर्मचारियों . को फिर से बनाएं कम से कम कॉलम वाली तालिका और कर्मचारी_आईडी . के लिए हटाई गई पहचान संपत्ति कॉलम:

DROP TABLE HumanResources.Employees
GO
CREATE TABLE HumanResources.Employees
( Employee_Id INT NOT NULL,
  First_Name VARCHAR(100) NOT NULL,
  Last_Name VARCHAR(100) NOT NULL
);
GO

अब जब हमने प्राथमिक कुंजी या क्लस्टर इंडेक्स के बिना तालिका बना ली है, तो हम कर्मचारी_Id के लिए गैर-क्रमबद्ध क्रम में 3 रिकॉर्ड सम्मिलित कर सकते हैं कॉलम:

INSERT INTO HumanResources.Employees ( Employee_Id, First_Name, Last_Name)
VALUES
(3, 'Antony', 'Mark'),
(1, 'James', 'Cameroon'),
(2, 'Jackie', 'Chan')

आइए HumanResources.कर्मचारियों . में से चुनें तालिका:

SELECT * 
FROM HumanResources.Employees

हम रिकॉर्ड्स को उसी क्रम में देख सकते हैं जैसे इस समय हीप टेबल से डाले गए रिकॉर्ड्स।

आइए इस हीप टेबल पर एक प्राथमिक कुंजी बनाएं और देखें कि क्या इसका चयन कथन पर कोई प्रभाव पड़ता है:

ALTER TABLE HumanResources.Employees
ADD CONSTRAINT PK_Employees PRIMARY KEY (Employee_ID);
GO
SELECT * 
FROM HumanResources.Employees

प्राथमिक कुंजी के निर्माण के बाद, हम देख सकते हैं कि SELECT स्टेटमेंट ने कर्मचारी_Id के आरोही क्रम में रिकॉर्ड प्राप्त किए। (प्राथमिक कुंजी कॉलम)। यह कर्मचारी_Id . पर संकुल अनुक्रमणिका के कारण है

यदि गैर-क्लस्टर विकल्प के साथ प्राथमिक कुंजी बनाई जाती है, तो प्राथमिक कुंजी कॉलम के आधार पर तालिका डेटा को सॉर्ट नहीं किया जाएगा।

यदि किसी तालिका में एकल रिकॉर्ड की लंबाई 4030 बाइट्स से अधिक है, तो केवल एक रिकॉर्ड एक पृष्ठ में फिट हो सकता है। संकुल सूचकांक सुनिश्चित करता है कि पृष्ठ भौतिक क्रम में हैं।

एक पृष्ठ 8 केबी (8192 बाइट्स) के आकार के साथ SQL सर्वर डेटा फ़ाइलों में भंडारण की एक मौलिक इकाई है। उस इकाई के केवल 8060 बाइट डेटा संग्रहण के लिए उपयोग करने योग्य हैं। शेष राशि पेज हेडर और अन्य इंटर्नल के लिए है।

प्राथमिक कुंजी कॉलम चुनने की युक्तियां

  • पूर्णांक डेटा प्रकार कॉलम प्राथमिक कुंजी कॉलम के लिए सबसे उपयुक्त होते हैं क्योंकि वे छोटे भंडारण आकारों पर कब्जा कर लेते हैं और डेटा को तेज़ी से पुनर्प्राप्त करने में सहायता कर सकते हैं।
  • चूंकि प्राथमिक कुंजी कॉलम में डिफ़ॉल्ट रूप से क्लस्टर इंडेक्स होता है, इसलिए इंक्रीमेंटल क्रम में नए मान उत्पन्न करने के लिए पूर्णांक डेटा प्रकार कॉलम पर पहचान विकल्प का उपयोग करें।
  • एकाधिक कॉलम पर प्राथमिक कुंजी बनाने के बजाय, परिभाषित पहचान संपत्ति के साथ एक नया पूर्णांक कॉलम बनाएं। साथ ही, बेहतर प्रदर्शन के लिए मूल रूप से पहचाने गए कई स्तंभों पर एक अद्वितीय अनुक्रमणिका बनाएं।
  • स्ट्रिंग डेटाटाइप वाले कॉलम से बचने की कोशिश करें जैसे varchar, nvarchar, आदि। हम इन डेटाटाइप पर डेटा की क्रमिक वृद्धि की गारंटी नहीं दे सकते। यह इन स्तंभों पर INSERT के प्रदर्शन को प्रभावित कर सकता है।
  • ऐसे कॉलम चुनें जहां मान प्राथमिक कुंजी के रूप में अपडेट नहीं होंगे। उदाहरण के लिए, यदि प्राथमिक कुंजी मान 5 से 1000 में बदल सकता है, तो क्लस्टर इंडेक्स से जुड़े बी-ट्री को अपडेट करने की आवश्यकता होती है, जिसके परिणामस्वरूप मामूली प्रदर्शन में गिरावट आती है।
  • यदि स्ट्रिंग डेटाटाइप कॉलम को प्राथमिक कुंजी कॉलम के रूप में चुना जाना है, तो सुनिश्चित करें कि बेहतर प्रदर्शन के लिए वर्चर या nvarchar डेटाटाइप कॉलम की लंबाई छोटी रहती है।

निष्कर्ष

हम SQL सर्वर में उपलब्ध बाधाओं की मूल बातें पढ़ चुके हैं। हमने प्राथमिक कुंजी बाधाओं की विस्तार से जांच की और सीखा कि प्राथमिक कुंजी कैसे बनाएं, छोड़ें, संशोधित करें, अक्षम करें और पुनर्निर्माण करें। इसके अलावा, हमने प्राथमिक कुंजी के बारे में कुछ लोकप्रिय मिथकों को उदाहरणों के साथ स्पष्ट किया है।

अगले लेख के लिए बने रहें!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DLL 'SqlServerSpatial.dll' लोड करने में असमर्थ

  2. क्या मैं SQL सर्वर (C#) में एक पंक्ति को INSERT या अद्यतन करने के लिए स्ट्रीम का उपयोग कर सकता हूं?

  3. SQL सर्वर में sys.sql_modules, sys.system_sql_modules और sys.all_sql_modules के बीच अंतर

  4. मैं अपने SQL सर्वर एजेंट जॉब में एक चरण कैसे बनाऊं जो मेरा SSIS पैकेज चलाएगा?

  5. नए SQL सर्वर कार्डिनैलिटी अनुमानक पर पहली नज़र