将结果集从SQL导出到Insert语句的工具?

Abd*_*bdu 16 sql sql-server

我想从SQL Server导出ad hoc Select查询结果集,以便直接导出为Insert Statements.

当您在SSMS中单击鼠标右键时,我希望看到"另存为"选项"插入.."以及其他当前可用选项(csv,txt).我没有从现有的物理表导出,我没有权限创建新表,因此脚本物理表的选项对我来说不是一个选项.

我必须从临时表或查询窗口中的结果集编写脚本.

现在我可以导出到csv,然后将该文件导入另一个表,但这对于重复性工作来说是耗时的.

该工具必须创建正确的插入,并在为NULL值创建值时了解数据类型.

Joh*_*yre 13

就个人而言,我只会针对表格编写一个选择并自己生成插入.小菜一碟.

例如:

SELECT  'insert into [pubs].[dbo].[authors](
                    [au_id], 
                    [au_lname], 
                    [au_fname], 
                    [phone], 
                    [address], 
                    [city], 
                    [state], 
                    [zip], 
                    [contract])
    values( ''' + 
    [au_id] + ''', ''' + 
    [au_lname] + ''', ''' +
    [au_fname] + ''', ''' +
    [phone] + ''', ''' +
    [address] + ''', ''' +
    [city] + ''', ''' +
    [state] + ''', ''' +
    [zip] + ''', ' +
    cast([contract] as nvarchar) + ');'
FROM    [pubs].[dbo].[authors]
Run Code Online (Sandbox Code Playgroud)

会产生

insert into [pubs].[dbo].[authors](
                    [au_id], 
                    [au_lname], 
                    [au_fname], 
                    [phone], 
                    [address], 
                    [city], 
                    [state], 
                    [zip], 
                    [contract])
    values( '172-32-1176', 'White', 'Johnson', '408 496-7223', '10932 Bigge Rd.', 'Menlo Park', 'CA', '94025', 1);
insert into [pubs].[dbo].[authors](
                    [au_id], 
                    [au_lname], 
                    [au_fname], 
                    [phone], 
                    [address], 
                    [city], 
                    [state], 
                    [zip], 
                    [contract])
    values( '213-46-8915', 'Green', 'Marjorie', '415 986-7020', '309 63rd St. #411', 'Oakland', 'CA', '94618', 1);
... etc ...
Run Code Online (Sandbox Code Playgroud)

一些陷阱:

  1. 不要忘记包装你的单引号
  2. 这假设一个干净的数据库,并且不是SQL注入安全的.


Mla*_*dic 11

看看为SSMS添加的SSMS工具包,它可以让您满足您的需求.

  • 不太对劲.:) SSMS工具包仅适用于SSMS 2012.SSMS 2008和2005的用户仍然可以免费使用SSMS工具包. (3认同)