3

我有一个包含 330 万条记录的表,不想将整个内容从 dev 复制到 prod(在客户端控制的机器上,并且无法让链接服务器正常工作)。

我只想复制 300 条左右的这些记录。如何生成 300 条插入语句?

我想要插入的选择 SQL 是:

select * from data where ID > 9000;

我想要一个能打印出所有 INSERTS 的查询,以便我可以在生产框中复制和运行它。

4

1 回答 1

2

我看到你标记了你的帖子 SQL-Server-2005,这太糟糕了,因为 2008 版有一个向导工具。

您可以使用连接的字符串构建插入语句。

如果 field1 是一个字符串, field2 是一个数字:

select 'insert into data (field1, field2) values('' || field1 || '', ' || char(field2) ||');' from data where ID < 9000;

显然,如果您有很多列,考虑到字符串需要引号,这可能会很耗时。您可能也必须使用转换数字列char()

这应该会给你一个插入语句的列表,如下所示:

insert into data (field1, field2) values('A', 10);
insert into data (field1, field2) values('B', 20);
insert into data (field1, field2) values('C', 30);

也许这不是最优雅的方法,但它确实有效。

于 2012-11-22T04:02:50.730 回答