小编Jer*_*ine的帖子

查找所有表列的最小值和最大值

该查询按预期工作,但速度非常慢。这里有人有提高性能的建议吗?

我本质上只是创建一个临时表来存储所有表和列名称,并通过 WHILE 语句循环它们,以使用我想要的详细信息创建到另一个表的动态插入。

我最近的一次运行花费了大约 21 分钟,这并不完全糟糕(考虑到任务),但我很想获得一些关于如何/在哪里可以对其进行微调的意见。

USE <DATABASE>;

      IF NOT EXISTS(SELECT *
FROM sys.schemas WHERE name='temp')
BEGIN
EXEC ('CREATE SCHEMA temp');
END;

IF OBJECT_ID('temp.columns') IS NOT NULL
   BEGIN
      DROP TABLE temp.columns
   END;

SELECT [table_name]
    , [column_name]
    , [data_type]
    , [is_nullable]
    , [numeric_scale]
    , [ordinal_position]
INTO [temp].[columns]
FROM information_schema.columns c
WHERE table_schema = 'dbo'
      -- AND table_name = 'CONTACTS'
      ;

IF OBJECT_ID('_TableColumnsUsed') IS NOT NULL
   BEGIN
      DROP TABLE _TableColumnsUsed
   END;

      CREATE TABLE _TableColumnsUsed (Table_Name VARCHAR(255) NULL, Column_Position INT, Column_Name VARCHAR(255) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server dynamic information-schema aggregation

1
推荐指数
1
解决办法
3616
查看次数