将数据从 SQL 服务器 table 复制到历史 table 并添加复制时间的时间戳?
Copy data from a SQL Server table into a historic table and add a timestamp of the time copied?
我正在尝试找出一种特定的方法来从特定的 table(我们称之为 opportunities
)复制所有数据并将其复制到新的 table,使用复制到新 table 中的日期时间戳,其唯一目的是将历史数据生成到托管在 Azure Data Warehousing
.
中的数据库中
最好的方法是什么?到目前为止,我已经在数据仓库中创建了一个副本 table,并添加了一个名为 datecopied
的列
我开始使用的查询是:
SELECT OppName, Oppvalue
INTO Hst_Opportunities
FROM dbo.opportunities
我不确定从这里到哪里去!
您可以像下面这样将插入 select 查询写入 SQL Server 2008 +、Azure SQL 数据仓库
INSERT INTO Hst_Opportunities
SELECT OppName, Oppvalue, DATEDIFF(SECOND,{d '1970-01-01'},current_timestamp)
FROM dbo.opportunities
SELECT INTO
目前在 Azure SQL 数据仓库中不受支持。您应该熟悉 CREATE TABLE AS or 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 数据库。
我正在尝试找出一种特定的方法来从特定的 table(我们称之为 opportunities
)复制所有数据并将其复制到新的 table,使用复制到新 table 中的日期时间戳,其唯一目的是将历史数据生成到托管在 Azure Data Warehousing
.
最好的方法是什么?到目前为止,我已经在数据仓库中创建了一个副本 table,并添加了一个名为 datecopied
我开始使用的查询是:
SELECT OppName, Oppvalue
INTO Hst_Opportunities
FROM dbo.opportunities
我不确定从这里到哪里去!
您可以像下面这样将插入 select 查询写入 SQL Server 2008 +、Azure SQL 数据仓库
INSERT INTO Hst_Opportunities
SELECT OppName, Oppvalue, DATEDIFF(SECOND,{d '1970-01-01'},current_timestamp)
FROM dbo.opportunities
SELECT INTO
目前在 Azure SQL 数据仓库中不受支持。您应该熟悉 CREATE TABLE AS or 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 数据库。