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

मुझे एक दृश्य बनाने की ज़रूरत है कि यूनियन सभी तालिकाओं को उनके उपसर्ग के आधार पर (नई तालिकाएं मासिक रूप से जोड़ दी जाती हैं)

दृश्य बनाने के लिए आप इस क्वेरी बैच का उपयोग कर सकते हैं। लेकिन आपको इसे अपडेट करते रहना होगा।

declare @v nvarchar(max) =
    (
        select stuff((
        select cast(' union all select * from ' as nvarchar(max)) + quotename(name)
          from sys.tables
         where name like 'SOME\_TABLE\____\_[0-9][0-9][0-9][0-9][a-Z][a-Z][a-Z]' escape '\'
           for xml path('a'), type
        ).value('.','nvarchar(max)'),1,11,'')
    );
set @v = 'CREATE VIEW SOME_TABLE AS ' + @v;
exec (@v);

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

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE spCreateUnionedView
        @BaseTableName varchar(100)
    AS
    BEGIN
        SET NOCOUNT ON;

        declare @v nvarchar(max) =
        (
            select stuff((
            select cast(' union all select * from ' as nvarchar(max)) + quotename(name)
              from sys.tables
             where name like replace(@BaseTableName, '_', '\_') + '\____\_[0-9][0-9][0-9][0-9][a-Z][a-Z][a-Z]' escape '\'
               for xml path('a'), type
            ).value('.','nvarchar(max)'),1,11,'')
        );

        declare @s nvarchar(max) = 'DROP VIEW ' + @BaseTableName;
        exec (@s);

        set @v = 'CREATE VIEW ' + @BaseTableName + ' AS ' + @v;
        exec (@v);

    END
    GO



  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 सर्वर अनुक्रमणिका फ़्रेग्मेंटेशन जानकारी को सक्रिय रूप से कैसे एकत्रित करें

  2. कनेक्शन स्ट्रिंग में नाम समाधान नेटवर्क शेयर से विफल रहता है

  3. एक विशाल तालिका में स्तंभ प्रकार बदलें

  4. क्या Microsoft SQL सर्वर पर SQL क्वेरी के लिए टाइमआउट सेट करना संभव है?

  5. इसमें डालें... मर्ज करें... चुनें (एसक्यूएल सर्वर)