将数据库表中的数据生成Insert脚本的存储过程(改版)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
项目中用到需要把表中的数据生成Insert脚本,从网上搜到了个存储过程,但是在执行时报错,就修改调试通过
添加对字段名为SQL关键字或是字段名带空格的支持,同时忽略自增长字段数据。

CREATE Procedure DBGenData
    
@tableName Varchar(100)--表名
AS
    
DECLARE @IsIdentity INT
    
DECLARE @columnName VARCHAR(100)--列名
    DECLARE @TypeName VARCHAR(100)--数据类型
    DECLARE @columns VARCHAR(3000)--
    DECLARE @columnsAndhead VARCHAR(3000)--
     
    
SET @columnsAndhead = 'INSERT INTO '+@tableName+'(['
    
SET @columns = ''
     
    
--获取表的所有字段名称
    DECLARE a CURSOR FOR 
        
SELECT COLUMNPROPERTY( a.id,a.name,'IsIdentity'AS IsIdentity, a.[NAME] AS ColumnName ,b.[NAME] AS TypeName 
        
FROM syscolumns a INNER JOIN systypes b ON a.xtype=b.xtype AND b.xtype=b.xusertype 
        
WHERE a.[id]=(SELECT [id] FROM sysobjects WHERE [NAME]=@tableName)
     
    
OPEN a

    
FETCH NEXT FROM a INTO @IsIdentity@columnName ,@TypeName
        
WHILE @@FETCH_STATUS = 0
            
BEGIN
                
IF @IsIdentity =0
                    
BEGIN
                        
IF @TypeName IN ('bigint','bit','decimal','float','int','money','numeric','real','smallint','smallmoney','tinyint')
                            
BEGIN
                                
SET @columns = @columns + 'ISNULL(CAST(['+@columnName +'] AS VARCHAR),''NULL'')+'',''+'
                            
END
                        
ELSE
                            
BEGIN
                                
SET @columns = @columns+ '''''''''+ ISNULL(CAST(['+@columnName +'] AS VARCHAR),''NULL'')+ ''''''''+'',''+'
                            
END
                        
SET @columnsAndhead = @columnsAndhead + ''+ @columnName +'],[' 
                    
END
                
FETCH NEXT FROM a INTO @IsIdentity@columnName ,@TypeName
             
END


    
SELECT @columnsAndhead = left(@columnsAndhead,len(@columnsAndhead)-2+') VALUES('''
    
SELECT @columns = left(@columns,len(@columns)-5)


    
CLOSE a
    
DEALLOCATE a 

    
exec('select '''+@columnsAndhead+'+'+@columns +'+'')'' as InsertSQL from '+@tableName)
     
GO

 
自动化生成数据库Insert脚本工具教程 本文还有配套的精品资源,点击获取 简介:在IT行业,数据库管理和数据迁移工作中,"insert脚本生成"工具为用户提供了便捷。该工具支持DB2、Oracle和MySQL数据库系统,便于用户快速生成用于数据备份、迁移或测试环境初始化的SQL插入脚本。工具通过配置文件定制化脚本,考虑了不同数据库的语法和特性,简化了数据转移过程,并确保了操作的准确性和完整性。 1. 数... 阅读详情

相关推荐

基于WEB的报价管理系统的设计与实现

该系统采用B/S模式,后台运用SpringMVC和MyBatis搭建,利用MySQL数据库,来组织存储和管理数据,使用tomcat服务器向外提供服务。使用该系统对外有利于提高企业的综合竞争力,对内有利于提高成本管理和控制的水平,简化了报价流程、提高了工作效率、精简了报价机构,降低了成本。研究和掌握必要的信息采集和数据查询技术,是各个企业,事业单位信息化的一个重要标志。当前大多数企业采取的报价方式仍然是用EXCEL格和人工的方式,这不仅不利于大量数据的总结,更不利于对销售利润的控制。

m0_60918862的博客 975

with as insert SQL

with a as ( select orderid,matid,matgroup from ps1 where matgroup like 'B01%' ), b as ( select orderid,matid,matgroup from ps1 where matgroup like 'H0%' ), c as ( select orderid,matid,mat...

farmwang的专栏 1501

LVGL移植教程(正点原子)

学习正点原子LVGL移植教程,根据视频教程写的博客

papalila的博客 921

根据DataSet生成insert语句

/// <summary> /// 由数据集DataSet自动生成Insert的SQL语句集合 /// </summary> /// <param name="ds">数据集</param> /// <param name="TableName">名</param> /// &...

.Net9527的技术博客 451

为sql server 数据库数据生成insert 脚本

转自:http://hi.baidu.com/yeakyang/blog/item/44b61f825c0c67b76c8119a2.html 使用SQL Server 自带的“生成SQL脚本”工具,可以生成创建、视图、存储过程等的SQL脚本。那么,能否将中的数据生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中呢?答案是肯定的,网上收集资料如下

开享 694

使用Mybatis实现基本crud.md

使用Mybatis实现 增、查、改、删

热爱生活,热爱技术,对未知永远保持好奇! 361

mysql 数据生成insert脚本_将数据生成SQL脚本存储过程_mysql

作者:zlt982001将数据生成SQL脚本存储过程:CREATE PROCEDURE dbo.UspOutputData@tablename sysnameASdeclare @column varchar(1000)declare @columndata varchar(1000)declare @sql varchar(4000)http://www.gaodaima.com/38699...

weixin_30402231的博客 872

sql server中数据生成insert into插入语句

直接执行sql 输出 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO declare @tablename sysname declare @column nvarchar(max) declare @columndata nvarchar(max) declare @sql Nvarchar(max) declare @xtype t...

极客神殿 2310

mysql 导出某个数据insert语句带数据库

要将MySQL中的某个数据导出为带有数据库名的INSERT语句,并且实现这一功能时进行详细扩展,我们可以通过编写一个存储过程或使用脚本语言(如Python)来实现。这种方式非常适合数据迁移、备份、或在不同数据库实例之间传输数据。以下是详细实现步骤,并对相关功能进行了扩展。一、使用MySQL存储过程导出INSERT语句1...

cnzzs的博客 2074

database.db 文件详解:数据库文件在 SQLite 中的作用与使用

本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite数据库的默认存储文件,包含结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调数据库管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和数据库维护。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 2225

数据库数据生成Insert SQL语气的存储过程

数据库数据生成Insert SQL语气的存储过程 1setANSI_NULLSON2setQUOTED_IDENTIFIERON3go456Createproc[dbo].[Get_insert_sql]7(8@tablenamevarchar(256)9,@wherevarchar(8000)=null10,@orderbyvarc...

dongkupi6218的博客 233

Sql server中用现有中的数据创建Sql的Insert插入语句

之前,在Codeproject发过一篇关于用现有数据创建Insert的Sql语句的存储过程,今天将其搬到这里来,注意本存储过程仅适用于SQL SERVER。 介绍 一些时候,你想导出一些现有中记录的Sql脚本以便你可以插入这些数据到另一个数据库的相似中。有很多方式可以做到,现在,我将跟大家分享一个存储过程来一起实现它。希望对各位有所帮助。 代码 首先,请在你的SQL Server数据库中创建如下名为[dbo].[sp_CreateInsertScript]存储过程,其内容如下:...

zhoumouren88的博客 539

根据数据生成insert语句的存储过程

-- 根据数据生成insert语句的存储过程Alter Proc proc_insert (@tablename varchar(256), @wherestr nvarchar(1000)) as -- 名称begin set nocount onDeclare @sqlstr varchar(4000),@sqlstr1 varchar(4000),@sqlstr2 varchar(40

mndn_nana的专栏 467

数据库中的数据生成Insert脚本存储过程!!!

数据库中的数据生成Insert脚本存储过程!!! CREATE Procedure DBGenData?@tableName? Varchar(100)?--名ASDECLARE @columnName VARCHAR(100)??--列名DECLARE @TypeName VARCHAR(100)??--数据类型DECLARE @columns VARCHAR(3000)???-

流男@水孩 1312

数据导成insert语句

前段时间做一个东西,做的时候用的是SQLServer2005,做完后经理说服务器是SQLServer2000,真是郁闷! 不过不要紧,因为数据库有直接导出SQL语句的功能,把整个数据库导成SQL在SQLServer2000下执行就可以了。 也许你回问:“在2005下导出的SQ

博识空间 3652

mysql 数据生成insert脚本_为sql server 数据库数据生成insert 脚本

CREATE PROCEDURE dbo.OutputData@tablename sysnameASdeclare @column varchar(1000)declare @columndata varchar(1000)declare @sql varchar(4000)declare @xtype tinyintdeclare @na...

weixin_28789303的博客 385

根据数据库数据的内容导出insert... sql脚本存储过程

在我们设计好数据库的时候,往往需要添加初始化数据,如果每行数据都自己来写则比较的麻烦,这个存储过程则是帮助大家来生成insert into脚本存储过程-- ======================================================--根据数据生成insert语句的存储过程--建立存储过程,执行 proc_GetInsert

stone的专栏 848

Oracle存储过程INSERT示例

这是Oracle数据库中的INSERT存储过程示例。 1.SQL脚本 DBUSER创建脚本。 CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NUL...

一名可爱的技术搬运工 3631
上一篇: 在C#中怎么通过类名访问类的属性
下一篇: ViewState使用兼谈序列化
powerboy
博客等级 码龄25年 12粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值