-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSyncTables.sql
More file actions
58 lines (42 loc) · 1.1 KB
/
SyncTables.sql
File metadata and controls
58 lines (42 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
DECLARE @table AS NVARCHAR(MAX)
DECLARE update_cursor CURSOR FOR
SELECT TABLE_NAME FROM information_schema.tables
OPEN update_cursor
FETCH NEXT FROM update_cursor
INTO @table
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @Columns AS NVARCHAR(MAX) = ''
DECLARE @Column AS NVARCHAR(4000) = ''
DECLARE column_cursor CURSOR FOR
SELECT COLUMN_NAME FROM information_schema.Columns WHERE TABLE_NAME = @table
OPEN column_cursor
FETCH NEXT FROM column_cursor
INTO @Column
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Columns = @Columns + ', ' + @Column
FETCH NEXT FROM column_cursor
INTO @Column
END
CLOSE column_cursor
DEALLOCATE column_cursor
SET @Columns = RIGHT(@Columns, LEN(@Columns) - 2)
EXEC('
IF OBJECTPROPERTY( OBJECT_ID(''' + @table + '''), ''TableHasIdentity'') = 1
BEGIN
SET IDENTITY_INSERT [dbo].[' + @table + '] ON
END
TRUNCATE TABLE [dbo].['+ @table + ']
INSERT INTO [dbo].['+ @table +'] (
' + @Columns + '
)
SELECT
' + @Columns + '
FROM [Test1].[dbo].['+ @table +']
')
FETCH NEXT FROM update_cursor
INTO @table
END
CLOSE update_cursor
DEALLOCATE update_cursor