我在当前的情况下遇到了困难,我在网上搜寻各种解决方案,但仍然无法解决问题。
以下是我的问题:
我有一堆需要使用游标在存储过程中执行的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)
)
问题:有没有办法使用动态列创建它?更详细的询问方式是,有没有办法在不为每个执行的SQL创建一堆临时表的情况下,将其插入到
#Temp
表中而不加前缀的列?谢谢
附注1:我对SQL Server非常新手,请不要犹豫地指出我的错误或错误。我们都从错误中学习。
附注2:对于我的英语水平很差,我尽力说明得更清楚。
问候:
LiangCk
SELECT coloum1,coloum2,coloum3,coloum4 INTO #Table3 FROM Database3.Table3
根据SELECT
的结果创建一个基于表格。那是你的意思吗? - Martin Smith