首页新闻找找看学习计划

sqlserver 查询数据生成insert 语句

0
悬赏园豆:50 [已关闭问题] 关闭于 2016-11-07 10:40

sqlserver 能否有办法将查询的结果生成insert 语句。查询涉及关联查询,不是一个实体表。

清海扬波的主页 清海扬波 | 小虾三级 | 园豆:841
提问于:2016-11-04 10:27
< >
分享
所有回答(7)
0

你的意思是将查出来的结果插入新的数据库?

我感觉不行

但是既然能写出查询的sql

那就很简单

关联了几个表就重新再写几个查询

查询基本不用变,只需要改变你的select的字段

每个新的查询对应这个表的所有字段就完事了

查询的结果生成insert语句就完事了

你说呢?

刘宏玺 | 园豆:14004 (专家六级) | 2016-11-04 10:32

是想生成

'insert into tb(col1,col2) values('1',2)'

这种

支持(0) 反对(0) 清海扬波 | 园豆:841 (小虾三级) | 2016-11-04 14:48

@清海扬波: 

insert into tb(col1,col2)  select xxx

这样写不行么?直接将结果插入到数据库就完事了

支持(0) 反对(0) 刘宏玺 | 园豆:14004 (专家六级) | 2016-11-04 15:19

@刘宏玺: 我是要sqlserver生成sql字符串,然后在access执行。

支持(0) 反对(0) 清海扬波 | 园豆:841 (小虾三级) | 2016-11-04 15:32

@清海扬波: 导出为csv后直接在导入进access就完事了嘛!

再不济也可以使用excel写个公式生成insert脚本执行嘛

不要光在SqlServer的角度上面小问题噻

支持(0) 反对(0) 刘宏玺 | 园豆:14004 (专家六级) | 2016-11-04 15:38
0

您好!能清晰无歧义地表达您的需求吗?请问将查询的结果生成insert语句是什么意思?

 

~扎克伯格 | 园豆:1799 (小虾三级) | 2016-11-04 10:32
0

select出来的数据明确   标识   说明 表  来源即可。

然后你以单次insert或者分多次insert就随意了。

花飘水流兮 | 园豆:10312 (专家六级) | 2016-11-04 10:37
0

你的意思是,从不同的表中select出数据,然后生成插入到不同table的insert语句,? 姐姐,你可以拆分结果集,自己来组装

悦光阴 | 园豆:2239 (老鸟四级) | 2016-11-04 11:06
0

手动拼一个,类似

SELECT 'INSERT [dbo].[T_Name](name)
  VALUES(''' + CONVERT(VARCHAR(12), name) + ''')'
FROM [dbo].[T_Name]

 

jello chen | 园豆:7091 (大侠五级) | 2016-11-04 11:55

是这样的,字段个数也是灵活的,怎么写

支持(0) 反对(0) 清海扬波 | 园豆:841 (小虾三级) | 2016-11-04 14:50

@清海扬波: 那写个存储过程喽

支持(0) 反对(0) jello chen | 园豆:7091 (大侠五级) | 2016-11-04 15:11

@jello chen: 查询和表不一样,表可以查询出来有哪些列,然后拼接,但是数据集本来就是连接查询的结果集,就不知道怎么弄了。

支持(0) 反对(0) 清海扬波 | 园豆:841 (小虾三级) | 2016-11-04 15:34

@清海扬波: 查询的结果集也是通过执行sql语句得到的,你可以通过传入表名或者子查询语句和查询列到存储过程或者函数来像上面那样动态拼一个

支持(0) 反对(0) jello chen | 园豆:7091 (大侠五级) | 2016-11-04 16:03
0

是想select into 么?

顾晓北 | 园豆:9520 (大侠五级) | 2016-11-04 13:17

不是,类似于sqlserver自带的生成数据库的数据插入脚本。

支持(0) 反对(0) 清海扬波 | 园豆:841 (小虾三级) | 2016-11-04 15:34

@清海扬波: 那你自己手动拼一个呗

支持(0) 反对(0) 顾晓北 | 园豆:9520 (大侠五级) | 2016-11-04 15:40
0

sql处理不了,借助程序解决了。

清海扬波 | 园豆:841 (小虾三级) | 2016-11-07 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册