CREATE Procedure DBGenData
SQL将数据库表中的数据生成Insert脚本的存储过程    
@tableName Varchar(100)--表名
SQL将数据库表中的数据生成Insert脚本的存储过程
AS
SQL将数据库表中的数据生成Insert脚本的存储过程    
DECLARE @IsIdentity INT
SQL将数据库表中的数据生成Insert脚本的存储过程    
DECLARE @columnName VARCHAR(100)--列名
SQL将数据库表中的数据生成Insert脚本的存储过程
    DECLARE @TypeName VARCHAR(100)--数据类型
SQL将数据库表中的数据生成Insert脚本的存储过程
    DECLARE @columns VARCHAR(3000)--
SQL将数据库表中的数据生成Insert脚本的存储过程
    DECLARE @columnsAndhead VARCHAR(3000)--
SQL将数据库表中的数据生成Insert脚本的存储过程
     
SQL将数据库表中的数据生成Insert脚本的存储过程    
SET @columnsAndhead = 'INSERT INTO '+@tableName+'(['
SQL将数据库表中的数据生成Insert脚本的存储过程    
SET @columns = ''
SQL将数据库表中的数据生成Insert脚本的存储过程     
SQL将数据库表中的数据生成Insert脚本的存储过程    
--获取表的所有字段名称
SQL将数据库表中的数据生成Insert脚本的存储过程
    DECLARE a CURSOR FOR 
SQL将数据库表中的数据生成Insert脚本的存储过程        
SELECT COLUMNPROPERTY( a.id,a.name,'IsIdentity'AS IsIdentity, a.[NAME] AS ColumnName ,b.[NAME] AS TypeName 
SQL将数据库表中的数据生成Insert脚本的存储过程        
FROM syscolumns a INNER JOIN systypes b ON a.xtype=b.xtype AND b.xtype=b.xusertype 
SQL将数据库表中的数据生成Insert脚本的存储过程        
WHERE a.[id]=(SELECT [id] FROM sysobjects WHERE [NAME]=@tableName)
SQL将数据库表中的数据生成Insert脚本的存储过程     
SQL将数据库表中的数据生成Insert脚本的存储过程    
OPEN a
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程    
FETCH NEXT FROM a INTO @IsIdentity@columnName ,@TypeName
SQL将数据库表中的数据生成Insert脚本的存储过程        
WHILE @@FETCH_STATUS = 0
SQL将数据库表中的数据生成Insert脚本的存储过程            
BEGIN
SQL将数据库表中的数据生成Insert脚本的存储过程                
IF @IsIdentity =0
SQL将数据库表中的数据生成Insert脚本的存储过程                    
BEGIN
SQL将数据库表中的数据生成Insert脚本的存储过程                        
IF @TypeName IN ('bigint','bit','decimal','float','int','money','numeric','real','smallint','smallmoney','tinyint')
SQL将数据库表中的数据生成Insert脚本的存储过程                            
BEGIN
SQL将数据库表中的数据生成Insert脚本的存储过程                                
SET @columns = @columns + 'ISNULL(CAST(['+@columnName +'] AS VARCHAR),''NULL'')+'',''+'
SQL将数据库表中的数据生成Insert脚本的存储过程                            
END
SQL将数据库表中的数据生成Insert脚本的存储过程                        
ELSE
SQL将数据库表中的数据生成Insert脚本的存储过程                            
BEGIN
SQL将数据库表中的数据生成Insert脚本的存储过程                                
SET @columns = @columns+ '''''''''+ ISNULL(CAST(['+@columnName +'] AS VARCHAR),''NULL'')+ ''''''''+'',''+'
SQL将数据库表中的数据生成Insert脚本的存储过程                            
END
SQL将数据库表中的数据生成Insert脚本的存储过程                        
SET @columnsAndhead = @columnsAndhead + ''+ @columnName +'],[' 
SQL将数据库表中的数据生成Insert脚本的存储过程                    
END
SQL将数据库表中的数据生成Insert脚本的存储过程                
FETCH NEXT FROM a INTO @IsIdentity@columnName ,@TypeName
SQL将数据库表中的数据生成Insert脚本的存储过程             
END
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程    
SELECT @columnsAndhead = left(@columnsAndhead,len(@columnsAndhead)-2+') VALUES('''
SQL将数据库表中的数据生成Insert脚本的存储过程    
SELECT @columns = left(@columns,len(@columns)-5)
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程    
CLOSE a
SQL将数据库表中的数据生成Insert脚本的存储过程    
DEALLOCATE a 
SQL将数据库表中的数据生成Insert脚本的存储过程
SQL将数据库表中的数据生成Insert脚本的存储过程    
exec('select '''+@columnsAndhead+'+'+@columns +'+'')'' as InsertSQL from '+@tableName)
SQL将数据库表中的数据生成Insert脚本的存储过程     
SQL将数据库表中的数据生成Insert脚本的存储过程
GO

 

相关文章:

  • 2022-12-23
  • 2021-12-11
  • 2022-12-23
  • 2021-11-29
  • 2021-12-05
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-19
  • 2021-12-26
  • 2021-10-17
  • 2021-10-29
  • 2022-01-29
  • 2021-10-02
相关资源
相似解决方案