Сопоставление с Shemas с хранимой процедурой

У меня есть две таблицы на одном сервере (MSSMQL) с двумя разными схемами: цель ([dbo].[Reserv]) и источник ([staging].[Reserv]) Я попытался сделать сопоставление (от источника к цели), чтобы подать bdo из Staging.

схема цели:

CREATE TABLE [dbo].[Reserv](
             [SourceID] [int] NOT NULL,
             [ResourceType] [varchar](10) NULL,
             [ResourceTableName] [varchar](100) NULL
             )  

Схема источника:

CREATE TABLE [staging].[Reserv](
             [SourceID] [int] NOT NULL,
             [ReType] [varchar](10) NULL,
             )  

У меня есть правило для 'ResourceTableName' -> ** ResType= 'A', затем 'Em' ResType='En', затем'En'**

что я сделал в своей хранимой процедуре для вставки, но у меня не сработало:

....
    WHEN NOT MATCHED THEN
                        INSERT
                        (
                             [SourceID] 
                            ,[ResourceType]
                            ,[ResourceTableName]
                            
                        )
                        VALUES
                        (
                             7
                             ,SOURCE.[ResourceType]
                             ,CASE WHEN SOURCE.[ResourceType]=''A'' THEN INSERT ''Em'' ELSE INSERT ''En'' END
    
                             );';
                     

Спасибо

Без контекста в этом мало смысла. Но CASE в tsql — это выражение, возвращающее скалярное значение. Ваш очень сокращенный код (который кажется tsql) логически ошибочен и будет генерировать синтаксическую ошибку, если вы попытаетесь использовать его в качестве конструкции управления потоком. Вы столкнулись с ошибкой? Это ты имеешь в виду под "не получилось"? Если да, опубликуйте полное сообщение об ошибке и полный (если он сокращен) код, вызвавший ошибку.

SMor 21.12.2020 17:01

SMor, я редактирую свой вопрос, чтобы он был более ясным.

nada 23.12.2020 13:37
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете вставить строки с логикой case:

insert into target (SourceID, ResourceType, ResourceTableName)
    select s.SourceID, s.ResourceType,
           (CASE WHEN s.[ResourceType] = 'Agent' THEN 'Employee' ELSE 'Engin' END)
    from source s;

Если это не то, что вы имеете в виду, то я не понимаю "отображение".

Другие вопросы по теме