sql वस्तु[INFORMATION_SCHEMA] के लिए अनसुलझा संदर्भ।




sql-server tsql (3)

master लिए डेटाबेस संदर्भ जोड़ें:

  1. प्रोजेक्ट के तहत, संदर्भ राइट-क्लिक करें।
  2. डेटाबेस संदर्भ जोड़ें का चयन करें ...।
  3. सिस्टम डेटाबेस का चयन करें।
  4. सुनिश्चित करें कि मास्टर का चयन किया गया है।
  5. ठीक दबाएं।

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

मैंने एक यूडीएफ बनाया है जो [INFORMATION_SCHEMA].[TABLES] तक पहुंचता है [INFORMATION_SCHEMA].[TABLES] देखें:

CREATE FUNCTION [dbo].[CountTables]
(
    @name sysname
)
RETURNS INT
AS
BEGIN
    RETURN
    (
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
    );
END

विजुअल स्टूडियो के भीतर, दृश्य के लिए स्कीमा और नाम दोनों चेतावनी के साथ चिह्नित हैं:

SQL71502: फंक्शन: [डीबीओ]। [CountTables] ऑब्जेक्ट [INFORMATION_SCHEMA] ऑब्जेक्ट का एक अनसुलझा संदर्भ है। [टैबलेट]।

मैं अभी भी किसी भी समस्या के बिना डेटाबेस प्रोजेक्ट प्रकाशित कर सकता हूं, और यूडीएफ सही ढंग से चल रहा है। IntelliSense मेरे लिए दृश्य के नाम को पॉप्युलेट करता है, इसलिए ऐसा लगता है कि इसमें कोई समस्या नहीं है।

मैंने इस दृश्य के बजाय sys.objects का उपयोग करने के लिए कार्यान्वयन को बदलने की भी कोशिश की, लेकिन मुझे इस दृश्य के लिए भी वही चेतावनी दी गई।

मैं इस चेतावनी को कैसे हल कर सकता हूं?


हमारी परियोजना में, हमारे पास पहले से ही मास्टर का संदर्भ है, लेकिन हमें यह समस्या थी। यहां हमें मिली त्रुटि मिली:

SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].

संदर्भ त्रुटि को हल करने के लिए, तालिका sql फ़ाइल पर, गुणों पर राइट क्लिक करें और BuildSettings को बिल्ड करने के लिए सेट करें सत्यापित करें।

इसे बदलना इसे ठीक करना है।


सैम ने यह करने का सबसे अच्छा तरीका क्या कहा।
हालांकि, अगर आपके पास एक परिदृश्य है जिसे आपको उस मशीन से डैपैक को तैनात करने की आवश्यकता है जिसमें उस विशिष्ट स्थान में वह संदर्भ नहीं है, तो आपको परेशानी हो सकती है। एक और तरीका है अपनी प्रोजेक्ट फ़ाइल खोलना और सुनिश्चित करें कि निम्न टैग में बिल्ड कॉन्फ़िगरेशन के लिए false का मान है जिसे आप चलाने का प्रयास कर रहे हैं।

<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>

इस तरह आपको अपनी परियोजना में संदर्भ जोड़ने की आवश्यकता नहीं है।





ssdt