我正在尝试找出一种特定的方法来复制特定表中的所有数据(让我们称之为opportunities
)并将其复制到一个新表中,并将日期的时间戳复制到新表中,仅用于将历史数据生成到Azure Data Warehousing
中托管的数据库中。
最好的方法是什么?到目前为止,我已经离开并在数据仓库中创建了一个重复的表,其中包含一个名为datecopied
的附加列
我开始使用的查询是:
SELECT OppName, Oppvalue
INTO Hst_Opportunities
FROM dbo.opportunities
我不确定从哪里开始!
答案 0 :(得分:2)
SELECT INTO
。您应该熟悉CREATE TABLE AS或CTAS语法,这在Azure DW中是等效的。
如果您想修复复制日期,只需将其分配给CTAS
之前的变量,如下所示:
DECLARE @copyDate DATETIME2 = CURRENT_TIMESTAMP
CREATE TABLE dbo.Hst_Opportunities
WITH
(
CLUSTERED COLUMNSTORE INDEX,
DISTRIBUTION = ROUND_ROBIN
)
AS
SELECT OppName, Oppvalue, @copyDate AS copyDate
FROM dbo.opportunities;
我还应该提一下,Azure DW的用例是数百万和数十亿行,带有数TB的数据。它不会在低容量时表现良好,因此请考虑您是否需要此产品,传统的SQL Server 2016安装或Azure SQL数据库。
答案 1 :(得分:1)
您可以将insert插入到下面的select查询中,该查询将与SQL Server 2008 +,Azure SQL数据仓库一起使用
INSERT INTO Hst_Opportunities
SELECT OppName, Oppvalue, DATEDIFF(SECOND,{d '1970-01-01'},current_timestamp)
FROM dbo.opportunities