我正在执行的任务是将一些数据从一个数据库移动到另一个数据库。这两个数据库具有相同的模式,因此我只需要数据。截至目前,我正在使用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........
- 当我写这个问题时,我的一位同事给了我答案。因为我还没有在这里找到这个,所以我还是要问问题并自己回答。
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,因为'
的转义字符是'
,它迫使我写''''
来指定我的值周围的'
。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);