Как создать хранимую процедуру в SQL Server, которая создает динамические разделы и процессы для табличной модели

#sql-server #sql-server-data-tools #ssas-tabular #xmla

#sql-сервер #sql-server-data-tools #ssas-табличный #xmla

Вопрос:

Как создать хранимую процедуру в SQL Server, которая создает динамические разделы и процесс?

Ниже приведен код, который каждый раз создает раздел и выполняет обработку одновременно на понравившемся сервере.

Используя приведенный ниже код, я хотел бы создать динамические множественные разделы и процесс, динамически передавая имя раздела и идентификатор финансового периода в процедуру.

Пожалуйста, предложите.

 declare @xmla varchar(max) = '
{
  "createOrReplace": {
    "object": {
      "database": "FlashArchive",
      "table": "FORECAST_FLASH",
      "partition": "FORECAST_FLASH_368"
    },
    "partition": {
      "name": "FORECAST_FLASH_368",
      "source": {
        "query": "select * from FORECAST_FLASH_ARCHIVE_V where fiscal_period_id=368",
        "dataSource": "itv.world"
      }
    }
  }
}
';

EXEC (@xmla) AT SSAS;



declare @xmlap varchar(max) = '
{
  "refresh": {
    "type": "automatic",
    "objects": [
      {
        "database": "FlashArchive",
        "table": "FORECAST_FLASH",
        "partition": "FORECAST_FLASH_368"
      }
    ]
  }
}
';
exec (@xmlap) at SSAS;
  

Комментарии:

1. Итак, в основном вы хотите создать хранимую процедуру, которая занимает финансовый период, который является числом, например, 368, и создает раздел и обновляет этот раздел. Казалось бы, все, что вам нужно сделать, это объединить это число в правильную часть строки. Знаете ли вы, как объединять строки в T-SQL?

2. @Nick. McDermaid Я хочу динамически передавать имя раздела и финансовый период в хранимую процедуру.

3. Если финансовый период 368 , то название раздела FORECAST_FLASH_368 правильное? таким образом, вам нужно передать только финансовый период. Ваша первая задача — выяснить, как создать хранимую prcoedure, которая принимает VARCHAR параметр

4. @Nick. McDermaid Я создал хранимую процедуру, которая принимает параметр VARCHAR. Я не могу найти, как исправить приведенный выше код в процедуре и выполнить на связанном сервере.

5. Можете ли вы отредактировать свой вопрос и опубликовать всю хранимую процедуру. Если ваше имя параметра @FiscalPeriod , то все, что вам нужно сделать, это объединить его с вашими существующими строками. Если у вас возникли проблемы, пожалуйста, объясните подробно.