SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO -- =============================================
-- Author:
-- Create date:
-- Description: 将表数据生成Insert脚本
-- Demo : exec pCreateInsertScript 'TestTable','1=1'
-- =============================================
CREATE PROC [dbo].[pCreateInsertScript] (
@tablename VARCHAR(256)
,@con NVARCHAR(400)
)
AS
BEGIN
SET NOCOUNT ON DECLARE @sqlstr VARCHAR(4000)
DECLARE @sqlstr1 VARCHAR(4000)
DECLARE @sqlstr2 VARCHAR(4000) SELECT @sqlstr = 'select ''insert ' + @tablename SELECT @sqlstr1 = '' SELECT @sqlstr2 = '(' SELECT @sqlstr1 = 'values (''+' SELECT @sqlstr1 = @sqlstr1 + col + '+'',''+'
,@sqlstr2 = @sqlstr2 + NAME + ','
FROM (
SELECT CASE
WHEN a.xtype = 173
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(' + convert(VARCHAR(4), a.length * 2 + 2) + '),' + a.NAME + ')' + ' end'
WHEN a.xtype = 104
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(1),' + a.NAME + ')' + ' end'
WHEN a.xtype = 175
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'replace(' + a.NAME + ','''''''','''''''''''')' + '+''''''''' + ' end'
WHEN a.xtype = 61
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'convert(varchar(23),' + a.NAME + ',121)' + '+''''''''' + ' end'
WHEN a.xtype = 106
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(' + convert(VARCHAR(4), a.xprec + 2) + '),' + a.NAME + ')' + ' end'
WHEN a.xtype = 62
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(23),' + a.NAME + ',2)' + ' end'
WHEN a.xtype = 56
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(11),' + a.NAME + ')' + ' end'
WHEN a.xtype = 60
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(22),' + a.NAME + ')' + ' end'
WHEN a.xtype = 239
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'replace(' + a.NAME + ','''''''','''''''''''')' + '+''''''''' + ' end'
WHEN a.xtype = 108
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(' + convert(VARCHAR(4), a.xprec + 2) + '),' + a.NAME + ')' + ' end'
WHEN a.xtype = 231
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'replace(' + a.NAME + ','''''''','''''''''''')' + '+''''''''' + ' end'
WHEN a.xtype = 59
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(23),' + a.NAME + ',2)' + ' end'
WHEN a.xtype = 58
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'convert(varchar(23),' + a.NAME + ',121)' + '+''''''''' + ' end'
WHEN a.xtype = 52
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(12),' + a.NAME + ')' + ' end'
WHEN a.xtype = 122
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(22),' + a.NAME + ')' + ' end'
WHEN a.xtype = 127
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(6),' + a.NAME + ')' + ' end'
WHEN a.xtype = 48
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(6),' + a.NAME + ')' + ' end'
WHEN a.xtype = 165
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + 'convert(varchar(' + convert(VARCHAR(4), a.length * 2 + 2) + '),' + a.NAME + ')' + ' end'
WHEN a.xtype = 167
THEN 'case when ' + a.NAME + ' is null then ''NULL'' else ' + '''''''''+' + 'replace(' + a.NAME + ','''''''','''''''''''')' + '+''''''''' + ' end'
ELSE '''NULL'''
END AS col
,a.colid
,a.NAME
FROM syscolumns a
WHERE a.id = object_id(@tablename)
AND a.xtype <> 189
AND a.xtype <> 34
AND a.xtype <> 35
AND a.xtype <> 36
) t
ORDER BY colid SELECT @sqlstr = @sqlstr + left(@sqlstr2, len(@sqlstr2) - 1) + ') ' + left(@sqlstr1, len(@sqlstr1) - 3) + ');'' from ' + @tablename + ' where 1=1 and ' + isnull(@con, '') PRINT @sqlstr EXEC (@sqlstr) SET NOCOUNT OFF
END
GO

  

SQL 导出表数据存储过程的更多相关文章

  1. SQL server 数据存储过程

    创建视图

  2. Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误

    使用DOS 操作界面导出表数据,导入表数据(需要在数据库所在的服务器上边执行) exp UserName/Password@192.168.0.141/orcl   file=d:\xtables.d ...

  3. PL/SQL DEVELOPER 导出表数据

    http://jingyan.baidu.com/album/fcb5aff78e6a48edab4a7146.html?picindex=4 1. 导出表数据 打开pl/sql客户端 在左侧 点击t ...

  4. SQL Server 数据备份存储过程

    原文:SQL Server 数据备份存储过程 今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!! ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  5. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  6. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

  7. SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过

    SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过     存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...

  8. SQL server数据缓存依赖

    SQL server数据缓存依赖有两种实现模式,轮询模式,通知模式. 1  轮询模式实现步骤 此模式需要SQL SERVER 7.0/2000/2005版本以上版本都支持        主要包含以下几 ...

  9. SQL Server中存储过程 比 直接运行SQL语句慢的原因

    问题是存储过程的Parameter sniffing     在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...

随机推荐

  1. 03-Servlet 体系结构知识梳理

    一.Servlet体系结构 Java Web应用是基于Servlet规范运行,Servlet顶层类的关联如下图: 从图可看出,Servlet规范基本围绕这几个类运行,其中,与Servlet主动关联的有 ...

  2. html5——伸缩比例案例(携程)

    1.有图片的盒子,最好是父盒子设置伸缩属性,a标签设置伸缩比例1,img标签宽度100% 2.不要见到父盒子就设置伸缩属性,而是根据子盒子是否占据一行,若是子盒子占据一行,那么只要给子盒子设置伸缩比例 ...

  3. Linux Shell ssh登录脚本

    Linux 登陆服务器敲命令太多,某时候确实不便,所以就用shell写了一个  我的blog地址: http://www.cnblogs.com/caoguo 一.说明 支持秘密和密钥两种格式 用户名 ...

  4. jstree CHECKBOX PLUGIN

    The checkbox plugin makes multiselection possible using three-state checkboxes. Configuration overri ...

  5. makefile 与 make

    所要完成的Makefile 文件描述了整个工程的编译.连接等规则.其中包括:工程中的哪些源文件需要编译以及如何编译.需要创建那些库文件以及如何创建这些库文件.如何最后产生我们想要的可执行文件.尽管看起 ...

  6. UIWebview 截获html并修改内容。

    需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果: 方法:通过js截获UIWebView中的html,然后修改html标签内容:  实例代码:  服务 ...

  7. hint: not have locally. This is usually caused by another repository pushing

    git 提交代码前先pull代码,否则会报如下错误 wangju@wangju-HP-348-G4:~/test/reponselogiccheck$ git statusOn branch mast ...

  8. [Luogu] P4198 楼房重建

    题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些事件发生在一个 ...

  9. jQuery练习:表单模态框

    代码:基于事件冒泡原理和事件委托 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta cha ...

  10. PAT 1101 Quick Sort

    There is a classical process named partition in the famous quick sort algorithm. In this process we ...