首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL导入/导出

SQL导入/导出
EN

Stack Overflow用户
提问于 2012-05-14 22:05:34
回答 3查看 275关注 0票数 1

运行select语句以便稍后可以将输出插入SQL的最直接方法是什么?数据集大小将非常小(可能少于100行)。我知道有一些特定于DB的导入/导出工具,但我想知道这是否可以仅通过SQL (加上一些unix命令行)来完成。

编辑:

为了清楚起见,我想沿着以下代码行保存一组行:

代码语言:javascript
复制
select * from my_table where category='test'

然后,过一段时间,我希望将那些匹配的行插回到同一个表中。我假设SQL select输出将被保存到一个文件中,并且该文件将通过sql命令行实用程序重新播放。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-14 22:36:53

一种方法是通过将一些字符串连接在一起来生成SQL,以生成INSERT语句。假设您使用的是MSSQL:

代码语言:javascript
复制
SELECT'INSERT INTO Table1(Col1,Col2) VALUES('+CAST(Col1 AS VARCHAR(500))+',' +CAST(Col2 AS VARCHAR(500))+')' FROM Table1  

这不是一个很好的方法,因为它显然不能很好地扩展,但对于小型应用来说,它并不是太糟糕,特别是如果你想要一个快速的答案。

我不知道你的数据库是如何构造的,但请确保你记得检查你插入的数据不会受到任何PK / FK约束的影响。

也可以看看这个问题:What is the best way to auto-generate INSERT statements for a SQL Server table?

你也可以考虑使用BCP http://msdn.microsoft.com/en-us/library/aa196743(v=sql.80).aspx google for SQL BCP将会向你展示大量的结果,这些结果应该会很有帮助。

我知道您想要基于代码的解决方案,但我只想提一下,您也可以从SQL Management Studio导出此类数据(假设您正在使用它)。

票数 2
EN

Stack Overflow用户

发布于 2012-05-14 22:28:22

我不确定我是否理解正确,但是您想在同一命令上运行select并将结果插入到表中吗?

我不确定是否可以这样做,但我认为最像您想要的是输出语句:

代码语言:javascript
复制
declare @mytables table
(
   name varchar(50)
)

INSERT INTO @mytables    
output inserted.*   
select name 
from sys.tables

在这里,您将查询select name from sys.tables的结果插入到@mytables中,并使用OUTPUT子句显示结果

票数 0
EN

Stack Overflow用户

发布于 2012-05-14 22:37:44

如果数据库为TableA { Id, Column1, Column2 }

代码语言:javascript
复制
SELECT 
     'INSERT INTO [TableA] ([Id], [Column1], [Column2])' 
     + VALUES (' + [Id] + ', ''' + [Column1] + ''', ''' + [Column2] + ''')'
FROM TableA

结果将是:

代码语言:javascript
复制
INSERT INTO [TableA] ([Id], [Column1], [Column2]) VALUES (1, 'Value1', 'Value2')
INSERT INTO [TableA] ([Id], [Column1], [Column2]) VALUES (2, 'Value11', 'Value22')

然后,您可以将结果复制到文件中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10584923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档