生成用于导出SPECIFIC数据的插入脚本

问题描述 投票:0回答:1

我正在执行的任务是将一些数据从一个数据库移动到另一个数据库。这两个数据库具有相同的模式,因此我只需要数据。截至目前,我正在使用SQL Server Management Studio的内置实用程序生成如下脚本:Right click database -> Tasks -> Generate Scripts然后按照向导。我的问题是我的表格相当大,我只需要特定的行。没有选项可以包含where子句,所以我每次都得到整个表格。有没有办法解决?

我想要的结果类似于SQL Server Management Studio在生成脚本时输出的结果,如下所示:

USE [databaseName]
GO
INSERT [dbo].[table_name] ([column1], [column2], [varCharColumn3], [varCharColumn4], [column5]) VALUES (1, 2, 'varCharValue1', 'varCharValue2', 4)
GO
INSERT [dbo].[table_name] ([column1], [column2], [varCharColumn3], [varCharColumn4], [column5]) VALUES (1, 2, 'varCharValue1', 'varCharValue2', 5)
GO
INSERT [dbo].[table_name] ([column1], [column2], [varCharColumn3], [varCharColumn4], [column5]) VALUES (1, 4, 'varCharValue1', 'varCharValue2', 4)
GO
INSERT [dbo].[table_name] ([column1], [column2], [varCharColumn3], [varCharColumn4], [column5]) VALUES (1, 4, 'varCharValue1', 'varCharValue2', 5)
GO
INSERT [dbo].[table_name] ([column1], [column2], [varCharColumn3], [varCharColumn4], [column5]) VALUES (1, 3, 'varCharValue1', 'varCharValue2', 4)
GO
And so on........
sql sql-server tsql ssms
1个回答
0
投票

- 当我写这个问题时,我的一位同事给了我答案。因为我还没有在这里找到这个,所以我还是要问问题并自己回答。

This simple query did the trick for me:

select 'insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (' + RTRIM(column1) + ', ' + RTRIM(column2) + ', ' + '''' + RTRIM(varCharColumn3) + '''' + ', ' + '''' + RTRIM(varCharColumn4) + '''' + ', ' + RTRIM(column5) + ');' 
from table_name
where 
    column5 = 4
    and column2 = 4

有些事情可能不清楚:

  • select-part的某些地方,连续有四个'。这是因为列中的数据是一个varchar,因为'的转义字符是',它迫使我写''''来指定我的值周围的'

The output of above query looks like this:

insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (1, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (2, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (3, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (4, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (5, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (6, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (7, 4, 'varCharValue1', 'varCharValue2', 4);
insert into table_name (column1, column2, varCharColumn3, varCharColumn4, column5) VALUES (8, 4, 'varCharValue1', 'varCharValue2', 4);
© www.soinside.com 2019 - 2024. All rights reserved.