परिदृश्य:
आपको एक तालिका को छोटा करने की आवश्यकता है, लेकिन जब आप तालिका को छोटा करने का प्रयास करते हैं तो तालिका का नाम। आपको नीचे त्रुटि मिलती है।संदेश 4712, स्तर 16, राज्य 1, पंक्ति 43
तालिका 'SchemaName.TableName' को छोटा नहीं किया जा सकता क्योंकि इसे एक विदेशी कुंजी बाधा द्वारा संदर्भित किया जा रहा है।
आप इस तालिका को कैसे छोटा करेंगे?
समाधान:
विदेशी कुंजी संबंध में शामिल तालिका के रूप में, आपको पहले विदेशी कुंजी बाधा को छोड़ना होगा और फिर छोटा तालिका विवरण निष्पादित करना होगा। और dbo.Orders और फिर Dbo के कॉलम में से एक पर विदेशी कुंजी बाधा बनाएं। dbo.Customer तालिका को ऑर्डर करें।USE YourDatabaseName
GO
CREATE TABLE dbo.Customer (
Customerid INT PRIMARY KEY
,FName VARCHAR(100)
,LName VARCHAR(100)
,SSN VARCHAR(10)
)
CREATE TABLE dbo.Orders (
OrderId INT Identity(1, 1)
,OrderitemName VARCHAR(50)
,OrderItemAmt INT,
CustomerId int
)
--Create Foreign Key Constraint
Alter table dbo.Orders with Nocheck
Add Constraint Fk_CustomerId
Foreign Key(CustomerId) References dbo.Customer(CustomerId) अब अगर मैं dbo.Orders तालिका को छोटा करने का प्रयास करता हूं, तो यह कोई त्रुटि नहीं देगा। लेकिन जब मैं dbo.Customer तालिका को छोटा करने का प्रयास करता हूं तो यह त्रुटि को dbo के रूप में फेंक देगा। ग्राहक विदेशी कुंजी बाधा द्वारा संदर्भ शुरू कर रहा है। ![]() |
| उस तालिका को कैसे छोटा करें जो SQL सर्वर में विदेशी कुंजी बाधा द्वारा संदर्भित हो |
हम अभी के लिए बाधा छोड़ सकते हैं, तालिका को छोटा कर सकते हैं और फिर विदेशी कुंजी बाधा को फिर से बना सकते हैं।
तालिका पर विदेशी कुंजी बाधाओं को खोजने के लिए, आप नीचे दिए गए कथन का उपयोग कर सकते हैं।
SELECT *
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('dbo.Customer') ![]() |
| एसक्यूएल सर्वर में सिस्टम टेबल से कंस्ट्रेंट नाम कैसे प्राप्त करें |
SELECT
'ALTER TABLE '
+ OBJECT_SCHEMA_NAME(parent_object_id)
+'.[' + OBJECT_NAME(parent_object_id)
+'] DROP CONSTRAINT '
+ name as DropFKConstraint
FROM sys.foreign_keys
के रूप में चुनें WHERE referenced_object_id = object_id('dbo.Customer') ![]() |
| एसक्यूएल सर्वर में टेबल पर फॉरेन की बाधा को कैसे छोड़ें |
वीडियो डेमो :तालिका को छोटा नहीं किया जा सकता क्योंकि इसे एक विदेशी कुंजी बाधा द्वारा संदर्भित किया जा रहा है


