将数据库表中的数据生成Insert脚本的存储过程!!!
2004-08-28 17:21
701 查看
将数据库表中的数据生成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
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
相关文章推荐
- 将数据库表中的数据生成Insert脚本的存储过程(改版)
- 将数据库表中的数据生成Insert脚本的存储过程!!!
- 将数据库表中的数据生成Insert脚本的存储过程(改版)
- 将表中的数据生成Insert脚本的存储过程!!!
- SqlServer2005(2000)数据库字典,将表数据生成SQL脚本的存储过程 (转)
- 存储过程生成数据表的insert脚本(转)
- MS SQL server 生成 insert 数据的存储过程脚本
- 从已有数据库生成脚本来获得生成数据表、视图、函数、存储过程以及触发器的SQL语句
- 利用存储过程数据库中的数据生成txt文件
- 将表数据生成SQL脚本的存储过程
- 将表里的数据批量生成INSERT语句的存储过程 增强版
- 将数据库数据导出成insert语句的存储过程
- 生成sql表数据存储过程脚本
- mssql 生成‘批量Insert数据的sql语句’的存储过程
- 将表里的数据批量生成INSERT语句的存储过程 继续增强版
- 将表里的数据批量生成INSERT语句的存储过程 增强版
- 为sql server 数据库表数据生成insert 脚本
- 将表中的数据自动生成INSERT语句的存储过程,自己收藏一下
- T-SQL 存储过程: (修订版) 根据基本表结构及其数据生成 INSERT INTO ... 的 SQL (转)
- 为sql server 表数据生成创建的储存过程(生成insert 脚本)