0
A
回答
0
如果您已經在SQL Server 2008上,您可以查看SQL Server Database Mirroring。避免使用額外的ETL工具。
0
創建一個存儲過程並安排一個時間: -
Create procedure copydata
AS
INSERT INTO DB1.dbo.TempTable
SELECT * FROM DB2.dbo.TempTable
0
你有沒有考慮過使用Integration Services?
您可以設置一個軟件包,執行您想要的操作,然後使用調度程序將其添加到作業中。
0
這裏是「窮人的方法」。
這個邏輯將消除每次都要截斷目標表的需要。
您可以安排一項作業每小時調用一次存儲過程。
OrganizationDB,這是我的db名稱。你的可能會有所不同。
如果源數據是不同的數據庫,使用該數據庫的名字....
USE [OrganizationDB]
GO
DROP TABLE [dbo].[EmployeeSource]
GO
DROP TABLE [dbo].[EmployeeDestination]
GO
CREATE TABLE [dbo].[EmployeeSource](
[EmployeeUUID] [uniqueidentifier] NOT NULL,
[SSN] [char](9) NOT NULL,
[LastName] [varchar](40) NOT NULL,
[FirstName] [varchar](40) NOT NULL,
[HireDate] [smalldatetime] NOT NULL,
CONSTRAINT [PK_EmployeeSource] PRIMARY KEY NONCLUSTERED
(
[EmployeeUUID] ASC
),
CONSTRAINT [CK_EmployeeSource_SSN_Unique] UNIQUE NONCLUSTERED
(
[SSN] ASC
)
)
GO
ALTER TABLE [dbo].[EmployeeSource] ADD DEFAULT (newsequentialid()) FOR [EmployeeUUID]
GO
ALTER TABLE [dbo].[EmployeeSource] ADD DEFAULT (getdate()) FOR [HireDate]
GO
CREATE TABLE [dbo].[EmployeeDestination](
[EmployeeUUID] [uniqueidentifier] NOT NULL,
[SSN] [char](9) NOT NULL,
[LastName] [varchar](40) NOT NULL,
[FirstName] [varchar](40) NOT NULL,
[HireDate] [smalldatetime] NOT NULL,
CONSTRAINT [PK_EmployeeDestination] PRIMARY KEY NONCLUSTERED
(
[EmployeeUUID] ASC
),
CONSTRAINT [CK_EmployeeDestination_SSN_Unique] UNIQUE NONCLUSTERED
(
[SSN] ASC
)
)
GO
ALTER TABLE [dbo].[EmployeeDestination] ADD DEFAULT (newsequentialid()) FOR [EmployeeUUID]
GO
ALTER TABLE [dbo].[EmployeeDestination] ADD DEFAULT (getdate()) FOR [HireDate]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[uspPoorMansDataCopy]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[uspPoorMansDataCopy]
Go
/*
exec [dbo].[uspPoorMansDataCopy]
*/
CREATE PROCEDURE [dbo].[uspPoorMansDataCopy]
AS
SET NOCOUNT ON
/* USE SURROGATE KEY */
INSERT INTO dbo.EmployeeDestination
(
[EmployeeUUID]
, [SSN]
, [LastName]
, [FirstName]
, [HireDate]
)
Select
[EmployeeUUID]
, [SSN]
, [LastName]
, [FirstName]
, [HireDate]
From
OrganizationDB.dbo.EmployeeSource es
where
not exists (select null from dbo.EmployeeDestination innerDestination where innerDestination.EmployeeUUID = es.EmployeeUUID)
/* OR USE UNIQUE CONSTRAINT */
INSERT INTO dbo.EmployeeDestination
(
[EmployeeUUID]
, [SSN]
, [LastName]
, [FirstName]
, [HireDate]
)
Select
[EmployeeUUID]
, [SSN]
, [LastName]
, [FirstName]
, [HireDate]
From
OrganizationDB.dbo.EmployeeSource es
where
not exists (select null from dbo.EmployeeDestination innerDestination where UPPER(innerDestination.SSN) = upper(es.SSN))
SET NOCOUNT OFF
GO
GRANT EXECUTE ON [dbo].[uspPoorMansDataCopy] TO public
GO
0
如果這是從一個表只有數據,如果這兩個數據庫在同一臺服務器上,你也可以考慮在該表上創建INSERT觸發器,該觸發器將自動捕獲所有新數據並將其複製到輔助數據庫中。
雖然數據庫不在同一臺服務器上,並且服務器不在同一個物理位置,但可能會導致性能問題,我不會這樣做。
相關問題
- 1. 在數據幀之間傳輸數據
- 2. 在活動之間傳輸textview數據?
- 3. 數據庫之間的自動信息傳輸
- 4. 在sqlite數據庫之間傳輸數據
- 5. 在外部數據庫之間傳輸數據
- 6. 在兩個數據庫之間傳輸數據
- 7. 在兩個數據庫之間傳輸SQL數據
- 8. 如何在2個MySQL數據庫之間傳輸數據?
- 9. 在線Mysql和SQL Server數據庫之間的數據傳輸
- 10. 在AWS RDS之間傳輸數據MySQL數據庫的
- 11. html之間傳輸數據
- 12. Android活動之間的數據傳輸
- 13. 網絡/數據庫服務器之間的數據傳輸
- 14. 傳輸數據庫之間的數據 - influx-python
- 15. 傳輸數據的兩個數據庫之間的
- 16. 數據庫之間的數據傳輸測量
- 17. 兩個數據庫之間的部分數據傳輸
- 18. 在兩次數據庫傳輸數據之間獲取切片數據
- 19. 在as400和Oracle之間傳輸數據
- 20. 在hadoop集羣之間傳輸數據
- 21. 在網站之間傳輸數據
- 22. 如何在UIViewControllers之間傳輸數據?
- 23. 在兩個iframe之間傳輸數據
- 24. 在Android設備之間傳輸數據
- 25. Node.js在腳本之間傳輸數據
- 26. 在wpf表單之間傳輸數據
- 27. 在數據庫之間快速傳輸行數
- 28. 用於數據在少數站點之間傳輸的數據流GUI庫
- 29. 在數據庫之間共享數據
- 30. 在數據庫之間歸檔數據
對我來說複製是更可取的。 – GriGrim
ETL和作業調度程序將執行此操作。 – duffymo