`
bailangfei3344
  • 浏览: 43770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MSSQL 表数据生成 Insert 语句的存储过程(转)

    博客分类:
  • SQL
 
阅读更多

set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
go 
-- ============================================= 
-- Author: 华岭 
-- Create date: 2008-10-28 
-- Description: 将表数据生成Insert脚本 
-- Demo : exec pCreateInsertScript 'BexmCodeType','dictypeid = 61' 
-- ============================================= 
alter 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
 
分享到:
评论

相关推荐

    SQL 导出数据 insert 语句

    但是,当数据量较小或者特定需求时,生成INSERT语句就显得很有价值。 INSERT语句是SQL语言中用于向表中插入新记录的基本命令。其基本语法如下: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);...

    MSsql数据表生成sql脚本

    本文将深入探讨“MSsql数据表生成sql脚本”这一主题,以及如何利用“顺风数据库工具”来实现这个过程。 首先,让我们理解SQL脚本的基本概念。SQL脚本是一系列预先编写好的SQL命令,可以一次性执行多个操作,如创建...

    delphi生成insert 语句

    这些文件可能是用来实现从数据库中读取数据并生成INSERT语句的工具,用户可以运行.exe文件,输入源数据库连接信息,程序将自动生成INSERT语句,方便数据导入到其他数据库。 6. **实际应用**:这样的工具在数据迁移...

    MS SQL数据导出Insert语句(SQLDMO)

    1、将表、视图及SQL语句查询结果生成Insert语句 2、将选定数据库对象(表、视图、存储过程等)生成Script 3、支持单表的SQL语句,关联表以第一个表为准 4、丰富了生成选项配置 5、树型结构方便查询操作 6、保存连接及...

    MSSQL语句生成小工具

    【MSSQL语句生成小工具】是一款专为SQL Server数据库设计的实用程序,它极大地简化了SQL语句的编写过程,尤其对于那些需要频繁进行数据操作或复杂查询的用户而言,这款工具提供了极大的便利性。它允许用户自定义和...

    mssql2生成工具

    MSSQL2生成工具的核心功能就是简化这个过程,它能分析数据库中的表结构和记录,自动生成相应的INSERT、UPDATE或DELETE等SQL语句,帮助用户快速实现数据的增、删、改、查。 对于Oracle数据库,该工具可能支持PL/SQL...

    sql server 生成 insert 脚本 工具

    2. 选择对象:在连接成功后,工具会列出数据库中的所有表,你可以选择需要生成INSERT语句的表。 3. 配置选项:一些高级选项可能允许你定制脚本生成的方式,例如是否包含触发器、是否忽略约束、是否处理NULL值、是否...

    MySQL数据迁移到MSSQL

    这将生成一个包含CREATE TABLE语句和INSERT INTO语句的SQL文件,用于在MSSQL中重建表结构和插入数据。 3. **转换SQL语法**:由于MySQL和MSSQL的SQL语法略有不同,需要对导出的SQL脚本进行语法转换。可以使用工具如...

    MSSQL编写存储过程

    - 可以使用INSERT语句直接向表中插入数据。 - **通过视图插入数据** - 通过视图插入数据时,需要考虑视图背后的复杂性。 - **基于SELECT语句的插入** - 可以通过SELECT语句从其他表中选择数据并插入到目标表。 #...

    DBmake mssql代码生成器

    这款工具的核心功能在于解析数据库结构,包括表、视图、存储过程等,然后根据解析结果自动生成对应的SQL语句,如INSERT、UPDATE、DELETE以及SELECT查询。此外,它还能生成数据访问层的类和方法,以供应用程序调用,...

    自动生成单行操作记录的存储过程的存储过程

    标题中的“自动生成单行操作记录的存储过程的存储过程”指的是在Microsoft SQL Server (MSSQL) 中,创建一个存储过程,该过程能够自动记录数据库中的单行操作。这通常用于日志记录或者审计跟踪,以便追踪数据的更改...

    Mssql 复制表结构 表数据.docx

    在SQL Server(Mssql)中,复制表结构和表数据是一项常见的操作,特别是在数据库管理和迁移过程中。以下将详细解释如何实现这些操作。 1. **复制表结构:** - 如果你需要复制一个表的结构,但不需要任何数据,可以...

    全国省市区3级 3张表的创建文件,可直接在MSSQL数据库创建生成表。

    通过运行这个SQL脚本,用户可以直接在MSSQL数据库中生成完整的省市区3级数据表,无需手动创建。 在实际应用中,为了提高查询效率,往往还会创建索引,尤其是对经常需要进行筛选和关联操作的字段,如ProvinceID、...

    SQL数据库单个数据表导出工具

    通过将MSSQL的数据表转换为INSERT语句,用户可以在不同的MSSQL实例之间,甚至与其他兼容SQL语法的数据库系统(如MySQL或PostgreSQL)之间移动数据。 在实际应用中,这样的工具可能用于以下场景: 1. **数据备份**:...

    数据库脚本生成器

    3. 表的INSERT语句:生成脚本的核心在于生成INSERT语句,这些语句用于在目标数据库中插入数据。每条INSERT语句包含了对特定表的一行数据的插入操作,格式为`INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2,...

    MSSQL 循环插入语句

    - 定义局部变量`@columncount`, `@next`, `@insertCount`, `@CompareColumn`, `@CompareValue`等用于存储处理过程中的临时数据。 - 使用`Get_StrArrayLength`函数计算`@ColumnString`中列的数量。 - 通过`WHILE`...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    接下来,我们创建一个示例表 `db_TestTemp`,其中包含一个字段 `Engineer`,类型为 `NVARCHAR(MAX)`,用于存储需要拆分的字符串。 ```sql CREATE TABLE db_TestTemp ( Engineer NVARCHAR(MAX), BeginDate DATE...

    数据库脚本及数据生成工具

    2. **导出数据**:将数据库中的实际数据导出为INSERT语句,以便在新的数据库实例中导入,这对于数据迁移和备份至关重要。 3. **生成测试数据**:为数据库表生成大量的模拟数据,用于测试应用程序的功能和性能。 4. *...

    代码自动生成工具(vb类 java类 sql存储过程...)

    MSSQL 表操作存储过程的示例 (update, insert, delete) 支持数据字典生成 生成格式可以是 Word 或Excel 格式   支持简单的 SQL 语句操作 请从http://progame.vip.myrice.com/下载最新版本

    mssql2-- 数据库生成sql文件

    2. **数据导出**:除了结构,工具还能够将数据库中每个表的实际数据转换为INSERT语句,使得在新环境中可以按需恢复原始数据。 3. **自定义选项**:可能允许用户选择只导出特定的数据库对象,或者设置数据导出的范围...

Global site tag (gtag.js) - Google Analytics