Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Saya perlu membuat tampilan yang menyatukan semua tabel berdasarkan awalan mereka (tabel baru ditambahkan setiap bulan)

Anda dapat menggunakan kumpulan kueri ini untuk membuat tampilan. Tapi Anda harus terus memperbaruinya.

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);

Ini adalah proc tersimpan yang mengambil nama tabel dasar, dan membuat tampilan untuknya (saya membungkus kode di atas menjadi proc yang menggunakan parameter)

    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. Masalah dalam pivoting dinamis + sql server 2005

  2. konversi tipe data varchar ke tipe data datetime menghasilkan nilai di luar rentang

  3. SQL:Persatuan poligon

  4. Adakah kerugian dengan WITH RECOMPILE untuk proses proc tersimpan SQL Server bulanan?

  5. apa perbedaan antara Indeks Clustered dan Indeks Unik?