У меня возникла проблема с моей текущей ситуацией, я искал любое решение в сети, но все равно не могу его найти.
Вот вопрос:
У меня есть куча операторов SQL, которые необходимо выполнить в хранимой процедуре с помощью курсора внутри, каждый из операторов выполняет вставку, выбирая из другой базы данных, а также из таблицы.
Например:
INSERT INTO Database1.Table1(column1, column2, column3)
SELECT column1,column2, column3
FROM Database2.Table2
WHERE --Some Condition
и, возможно, другой исполняемый оператор SQL будет выглядеть так
INSERT INTO Database1.Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
Хорошо, в основном мой процесс такой
Execute Sql to insert into temp Tables --> Insert into a permanent Table from Temp Tables
Сверху два оператора SQL, мой выполненный результат из базы данных2 или 3 или может быть 4,5 и т. Д. Я отправлюсь в свою базу данных1 для постоянного хранения. Короче говоря, я хочу сделать еще одну копию данных, которые поступают из другого источника базы данных и сохраняются в моей локальной базе данных для дальнейшей обработки.
Моя основная проблема заключается в том, что мой ответственный (или менеджер) сказал мне, чтобы я выбросил все выполненные результаты в таблицу TEMP или #Table
перед выполнением в перманент.
Примерно так:
INSERT INTO #Table3(column1, column2, column3, column4)
SELECT column1, column2, column3, column4
FROM Database3.Table3
WHERE --Some Condition
Я провел некоторое исследование #Temp
таблиц и обнаружил, что большинство из них создаются с помощью столбца 'FIX', например
CREATE TABLE #Table
(
column1 VARCHAR(10),
column2 VARCHAR(10),
column3 VARCHAR(10)
)
ПРОБЛЕМА: есть ли способ создать его с динамическими столбцами? Более подробный способ задать вопрос, есть ли способ вставить в таблицу #Temp
без префикса столбца? Потому что для меня невозможно создать кучу временных таблиц для каждого из выполняемых SQL.
Спасибо
PS 1: Я новичок в SQL Server, пожалуйста, не стесняйтесь высказать мою ошибку или ошибку. Мы все учимся на ошибках.
PS 2: Извините за мой плохой уровень английского, я старался изо всех сил, чтобы прояснить его более четко.
С уважением:
LiangCk