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

存储过程|脚本|数据|数据库

CREATE Procedure DBGenData
?@tableName? Varchar(100)?--表名
AS
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 a.[NAME] AS ColumnName ,b.[NAME] AS TypeName
?FROM syscolumns a INNER JOIN systypes b ON a.xtype=b.xtype
?WHERE a.[id]=(SELECT [id] FROM sysobjects WHERE [NAME]=@tableName)

??? OPEN a
??? FETCH NEXT FROM a INTO @columnName ,@TypeName
??? WHILE @@FETCH_STATUS = 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),'''')+'',''+'
??END
??ELSE
??BEGIN
???SET @columns = @columns+? '''''''''+? ISNULL(CAST('+@columnName +' AS VARCHAR),'''')+ ''''''''+'',''+'
??END
??SET @columnsAndhead = @columnsAndhead + @columnName +','?????
??????? FETCH NEXT FROM a INTO @columnName ,@TypeName
??? END
?SELECT @columnsAndhead = left(@columnsAndhead,len(@columnsAndhead)-1) +') VALUES('''
?SELECT @columns = left(@columns,len(@columns)-5)
??? CLOSE a?
??? DEALLOCATE a??
?
?exec('select '''+@columnsAndhead+'+'+@columns +'+'')'' as a from '+@tableName)

GO

时间: 2025-01-02 06:56:34

将数据库表中的数据生成Insert脚本的存储过程!!!的相关文章

sqlite-如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据

问题描述 如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据 如题:我有一张excel的表,我将其存为.csv文件,然后通过dos命令下的sqlite3命令导入到了数据库表中,问题是如果不换机子,导入到该数据库表中的数据永久有效.如果我换机子调试的话,该数据库表中的数据就不存在了,会报错,请问有没有解决办法?谢谢! 解决方案 最好存入远程数据库每次启动同步下来数据就可以了,sqlite是系统自带的数据库具体的就是http://blog.csdn.net/tianyit

将表数据生成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' -- ===

从MySQL数据库表中检索数据

在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据:

从从MySQL数据库表中检索数据

  在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据

labview 数据库-从labview数据库表中提取数据

问题描述 从labview数据库表中提取数据 请问在labview中用数据库工具包,怎么从数据库表中提取一行的数据(非一列),用 执行语句 的vi,怎么获取到这行数据 解决方案 ultrachart的使用(一):从数据库中提取数据 解决方案二: http://zhidao.baidu.com/link?url=I6QemQpvC_C1sHAid9RjZXv3Z-VF62IeHIaY1kJEpMCmcalBNVfw1_Hv5fFnmKrvKyphR4rOihW1oqw1fXXUzVZrBsrp2k

UPDATE 语句用于中修改数据库表中的数据

更新数据库中的数据 UPDATE 语句用于在数据库表中修改数据. 语法 UPDATE table_name SET column_name = new_value WHERE column_name = some_value 注释:SQL 对大小写不敏感.UPDATE 与 update 等效. 为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数.该函数用于向 SQL 连接发送查询和命令. 例子 稍早时,我们在本教程中创建了一个名为 "Person" 的表.它看

将表数据生成SQL脚本的存储过程

存储过程|脚本|数据 作者:zlt982001 将表数据生成SQL脚本的存储过程: CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata varchar(1000) declare @sql varchar(4000) declare @xtype tinyint declare @name sysname declare @object

如何从 MySQL 数据库表中检索数据

1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列. 下面继续使用我们在上篇文章中创建的表mytable. 2.查询所有数据: mysql> select * from mytable; +----------+------+------------+----------+ | name

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

存储过程|数据|语句 有个缺点--就是标识种子的列 也insert了 CREATE   proc spGenInsertSQL (@tablename varchar(256)) as begin declare @sql varchar(8000) declare @sqlValues varchar(8000) set @sql =' (' set @sqlValues = 'values (''+' select @sqlValues = @sqlValues + cols + ' + '