Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除sql上的分区功能_Sql_Sql Server_Visual Studio_Ssis_Etl - Fatal编程技术网

如何删除sql上的分区功能

如何删除sql上的分区功能,sql,sql-server,visual-studio,ssis,etl,Sql,Sql Server,Visual Studio,Ssis,Etl,所以我得到了一个ETL,它存储了3年的'17(腐败,),'18(腐败,),'19: STG_表:从3个不同的数据库导入数据并导出到 DWH_表:这是存储所有历史信息的关系模式。这里只执行表和字段的规范化和参数化,以使它们适应开发的逻辑模型,但不应用任何业务规则 DIM_表:最后,在维Fase中,应用业务规则,并为查询优化表和索引,因为这是分析工具将攻击的地方 我有两种类型的重新加载: 每日重新加载:此作业负责执行执行数据仓库每日增量加载所需的SSIS包。它只加载维度Fase中大表的最后一个分区(

所以我得到了一个ETL,它存储了3年的'17(腐败,),'18(腐败,),'19:

STG_表:从3个不同的数据库导入数据并导出到

DWH_表:这是存储所有历史信息的关系模式。这里只执行表和字段的规范化和参数化,以使它们适应开发的逻辑模型,但不应用任何业务规则

DIM_表:最后,在维Fase中,应用业务规则,并为查询优化表和索引,因为这是分析工具将攻击的地方

我有两种类型的重新加载:

每日重新加载:此作业负责执行执行数据仓库每日增量加载所需的SSIS包。它只加载维度Fase中大表的最后一个分区(对应于当前年份)

完全重新加载:加载满3年(此项不起作用)

这不是我做的,我有0个技术文档,所以我只是想弄清楚这是如何工作的,我的想法是,一旦我开始完全重新加载,数据就会恢复

我在STG_fase上遇到错误:

DROP TABLE DWH_PROD.DWH_XX; 放置表格…':'一个或多个分区方案中正在使用分区函数“pfs”。错误的可能原因:查询问题、属性“ResultSet”设置不正确、参数设置不正确或连接建立不良

我不知道如何删除此分区以便重新创建它 并且找不到'ResultSet'属性,请帮助

USE DB;
GO

DROP TABLE DWH_PROD.DWH_ALBARANES_TARIFA;
DROP TABLE DWH_PROD.DWH_PETICIONES;
DROP TABLE DWH_PROD.DWH_SOLICITUDES;
DROP TABLE DWH_PROD.DWH_RESULTADOS;
DROP TABLE DWH_PROD.DWH_INCIDENCIAS;

-------i delete code so the text is not so big------
Here there are all the creation of the drop tables above

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_ALBARANES_TARIFA')
    CREATE TABLE DWH_PROD.DWH_ALBARANES_TARIFA (
    );

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_INCIDENCIAS')
    CREATE TABLE DWH_PROD.DWH_INCIDENCIAS (
    );

IF EXISTS (SELECT * FROM sys.partition_functions WHERE name = N'pfPeticiones')
    DROP PARTITION FUNCTION pfPeticiones;

CREATE PARTITION FUNCTION pfPeticiones (DATE)
AS RANGE RIGHT FOR VALUES 
('2017-01-01', '2018-01-01', '2019-01-01');

IF EXISTS (SELECT * FROM sys.partition_schemes WHERE name = N'psPeticiones')
    DROP PARTITION SCHEME psPeticiones;

CREATE PARTITION SCHEME psPeticiones
AS PARTITION pfPeticiones 
ALL TO ([Primary]);

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_PETICIONES')
    CREATE TABLE DWH_PROD.DWH_PETICIONES (
    ) ON psPeticiones(FEC_PETICION);

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_SOLICITUDES')
    CREATE TABLE DWH_PROD.DWH_SOLICITUDES (
    ) ON psPeticiones(FEC_PETICION);

IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_RESULTADOS')
    CREATE TABLE DWH_PROD.DWH_RESULTADOS (
    ) ON psPeticiones(FEC_PETICION);

要删除分区函数,您需要执行一些操作:

  • 删除或移动(即,如果您有堆,则在主表上创建聚集索引)所有使用分区架构的表
  • 删除分区模式
  • 删除分区函数

  • 主要错误是一个或多个分区方案中使用了分区函数“pf呈请”。您必须删除与此函数相关的所有分区方案。有几件事,您的错误引用了函数pf呈请,但您的脚本片段显示了分区函数pspiciones。也许是拼写错误?否则,脚本将翻转delete for函数和模式。将drop partition scheme语句移动到drop partition function语句之前。通常,您希望在模式之前创建函数,但在函数之前删除模式。此外,我建议(如果有空间)在运行脚本之前,首先重命名现有表。这样就可以创建一组新的表,并且可以测试您的全部负载。然后,一旦确定一切都已解决,就可以删除原始表。但是,如果由于某种原因出现了问题,您需要时间来弄清楚发生了什么,您可以将原来的表移回原处,让人们暂时使用它。(有2019年数据总比没有好)