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

SQL सर्वर में एक दृश्य से SCHEMABINDING निकालें

एक दृश्य को बाध्य करने वाले स्कीमा का उद्देश्य यह सुनिश्चित करना है कि दृश्य में संदर्भित आधार तालिकाओं को इस तरह से संशोधित नहीं किया जा सकता है जो दृश्य परिभाषा को प्रभावित करेगा।

यह सामान्य रूप से एक अच्छी बात है। आखिरकार, आप नहीं चाहते कि कोई साथ आए और एक टेबल छोड़े, जिस पर आपका विचार निर्भर करता है, है ना?

लेकिन क्या होगा यदि आपको अपने विचार से संदर्भित एक या अधिक तालिकाओं में परिवर्तन करने की आवश्यकता है?

इस मामले में, आप स्कीमा बाइंडिंग को एक दृश्य से हटा सकते हैं, आधार तालिका में परिवर्तन कर सकते हैं, फिर स्कीमा बाइंडिंग को फिर से लागू कर सकते हैं।

स्कीमा बाइंडिंग को एक दृश्य से हटाने के दो तरीके हैं:

  • दृश्य बदलें ताकि इसकी परिभाषा अब स्कीमा बाइंडिंग को निर्दिष्ट न करे।
  • दृश्य को छोड़ दें (फिर यदि आवश्यक हो तो स्कीमा बाइंडिंग के बिना इसे फिर से बनाएं)।

स्कीमा-बाउंड व्यू का उदाहरण

सबसे पहले, यहां स्कीमा बाउंड व्यू का एक उदाहरण दिया गया है:

CREATE VIEW dbo.v_Cats
WITH SCHEMABINDING
AS
    SELECT 
        CatId,
        CatName,
        Phone
    FROM dbo.Cats;
GO
चुनें

हम जानते हैं कि यह एक स्कीमा बाध्य दृश्य है क्योंकि इसमें WITH SCHEMABINDING . है इसकी परिभाषा में। स्कीमा बाइंडिंग को हटाने के लिए, हमें केवल उस बिट को हटाना होगा।

विकल्प 1 - दृश्य बदलें

इस दृश्य से स्कीमा बाइंडिंग को बदलकर इसे हटाने के लिए, हम निम्नलिखित कोड का उपयोग कर सकते हैं:

ALTER VIEW dbo.v_Cats
AS
    SELECT 
        CatId,
        CatName,
        Phone
    FROM dbo.Cats;
GO

हमने केवल CREATE में बदलाव किया था करने के लिए ALTER , और WITH SCHEMABINDING remove को हटा दें ।

विकल्प 2 - दृश्य छोड़ें

यहां दृश्य को छोड़ने, फिर उसे स्कीमा बाइंडिंग के बिना फिर से बनाने का एक उदाहरण दिया गया है:

DROP VIEW IF EXISTS dbo.v_Cats;
GO

CREATE VIEW dbo.v_Cats
AS
    SELECT 
        CatId,
        CatName,
        Phone
    FROM dbo.Cats;
GO
चुनें

इस मामले में, मैंने DROP IF EXISTS सिंटैक्स का उपयोग किया है, जो दृश्य के मौजूद न होने की स्थिति में किसी त्रुटि को होने से रोकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर तालिका में JSON फ़ाइल कैसे आयात करें

  2. SQL सर्वर में लॉजिकल ऑपरेटर के बीच क्या है - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 124

  3. जहां क्लॉज IN से पहले और जॉइन या बाद में बेहतर तरीके से निष्पादित होता है

  4. SQL सर्वर में एक कॉलम के आधार पर कई कॉलम पिवट करें

  5. एंटिटी फ्रेमवर्क कोड-फर्स्ट इनिशियलाइज़र में डेटाबेस संयोजन सेट करें