`

为sql server 表数据生成创建的储存过程(生成insert 脚本)

阅读更多

使用SQL Server 2000自带的“生成SQL脚本”工具,可以生成创建表、视图、存储过程等的SQL脚本。那么,能否将表中的数据也生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中呢?答案是肯定的。

 

CREATE PROCEDURE   dbo.OutputData     
  @tablename   sysname      
  AS      
  declare   @column   varchar(1000)     
  declare   @columndata   varchar(1000)     
  declare   @sql   varchar(4000)     
  declare   @xtype   tinyint      
  declare   @name   sysname      
  declare   @objectId   int      
  declare   @objectname   sysname      
  declare   @ident   int      

  set   nocount   on      
  set   @objectId=object_id(@tablename)     
  if  @objectId   is   null   --   判断对象是否存在     
 
   begin      
      print  @tablename +  '对象不存在'     
      return      
    end     

  set @objectname=rtrim(object_name(@objectId))     
  if @objectname is null or charindex(@objectname,@tablename)=0
    begin      
      print  @tablename +  '对象不在当前数据库中'      
      return      
    end        

  if  OBJECTPROPERTY(@objectId,'IsTable')   <   >   1   --   判断对象是否是表     
    begin      
      print  @tablename +  '对象不是表'     
      return      
    end        

  select   @ident=status&0x80   from   syscolumns   where   id=@objectid   and   status&0x80=0x80         

  if @ident is   not   null      
    print   'SET   IDENTITY_INSERT   '+ @TableName + '   ON'    

  --定义游标,循环取数据并生成Insert语句
  declare  syscolumns_cursor  cursor for   
    select   c.name,c.xtype   from   syscolumns   c     
      where   c.id=@objectid     
      order   by   c.colid    

  --打开游标
  open   syscolumns_cursor     
  set  @column=''     
  set  @columndata=''     
  fetch   next   from   syscolumns_cursor   into   @name,@xtype     
  while   @@fetch_status   <> -1     
    begin      
    if   @@fetch_status   <> -2     
      begin      
      if   @xtype   not   in(189,34,35,99,98)   --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理     
        begin      
        set   @column=@column + 
          case   when   len(@column)=0   then ''  
                 else   ','
                 end + @name     
        set   @columndata = @columndata + 
          case   when   len(@columndata)=0   then   ''   
                 else   ','','','
                 end  
          case   when  @xtype   in(167,175)  then   '''''''''+'+@name+'+'''''''''                --varchar,char     
                 when   @xtype   in(231,239)   then   '''N''''''+'+@name+'+'''''''''             --nvarchar,nchar     
                 when   @xtype=61   then   '''''''''+convert(char(23),'+@name+',121)+'''''''''   --datetime     
                 when   @xtype=58   then   '''''''''+convert(char(16),'+@name+',120)+'''''''''   --smalldatetime     
                  when   @xtype=36   then   '''''''''+convert(char(36),'+@name+')+'''''''''       --uniqueidentifier     
                 else   @name   
                 end      
        end      
      end      
    fetch   next   from   syscolumns_cursor   into   @name,@xtype     
    end      
  close   syscolumns_cursor     
  deallocate   syscolumns_cursor         

  set  @sql='set   nocount   on   select   ''insert   '+@tablename+'('+@column+')   values(''as   ''--'','+@columndata+','')''   from   '+@tablename        

  print   '--'+@sql     
  exec(@sql)         

  if   @ident   is   not   null      
  print  'SET   IDENTITY_INSERT   '+@TableName+'   OFF'    

调用时 exec   OutputData   'myuser' 其中myUser中当前数据库中存在的表

   

分享到:
评论

相关推荐

    SQLSERVER脚本生成工具,表数据生成SQL脚本

    描述中提到的“表数据生成SQL脚本”功能,具体来说,是指该工具能将SQL Server数据库中某个表的数据转换为INSERT语句的集合。这些INSERT语句可以按照一定的顺序执行,以复原表中的所有记录。例如,如果你有一个名为...

    SQL SERVER:把表里的数据导出成为INSERT INTO脚本的存储过程

    根据提供的文件信息,我们可以构建一个详细的SQL Server存储过程来实现将表中的数据转换为`INSERT INTO`脚本的功能。此存储过程将适用于多种数据类型,并能够动态生成插入语句,以便用户可以方便地导出数据作为脚本...

    SQL SERVER 数据自动生成SQL语句

    SQL Server 数据自动生成SQL语句是一项实用的功能,它极大地简化了数据迁移或备份的过程。这个功能使得用户能够快速地根据数据库中的表结构和已有数据,生成相应的SQL插入语句,以便将这些数据移植到其他数据库系统...

    sql server 生成 insert 脚本 工具

    SQL Server生成INSERT脚本工具是一种实用程序,它能够帮助数据库管理员和开发人员高效地从现有的SQL Server数据库中自动生成插入语句(INSERT scripts),这些语句可以用于在其他数据库或备份环境中重现数据。...

    MSsql数据表生成sql脚本

    在SQL Server Management Studio (SSMS) 中,你可以右键点击数据库或具体的数据表,选择“任务” -&gt; “生成脚本”,然后按照向导设置脚本的选项,如是否包含数据、脚本的目标版本等,最后即可生成对应的SQL脚本文件...

    SQLSERVER脚本生成器

    同时,它还能生成INSERT INTO语句,将表中的所有数据转化为SQL插入语句,以便在新的环境中重建同样的数据集。 4. **数据恢复**: 当数据库出现故障或者需要回滚到某个特定状态时,已生成的SQL脚本可以用于重新创建和...

    SQLSERVER生成数据脚本软件.

    SQL Server生成数据脚本软件是数据库管理员和开发人员的重要工具,它能够帮助用户轻松地导出数据库的结构和数据为SQL脚本,方便备份、迁移或者在不同环境间同步数据。以下是关于这个主题的详细知识: 1. **SQL ...

    sqlserver存储过程生成器

    SQL Server存储过程生成器是一种工具,它极大地简化了数据库开发者的工作,尤其是对于处理大量表及其关联操作时。这种工具能够自动分析数据库结构,并根据表的定义生成相应的存储过程,节省了手动编写这些复杂脚本的...

    SQLServer导出为Insert语句

    5. **自动生成Insert语句**:为了批量生成Insert语句,我们需要遍历用户表中的所有记录,并为每一行生成对应的Insert语句。这可以通过编写SQL查询,或者使用编程语言(如C++结合MFC)实现。程序可能首先获取表结构,...

    生成数据库表insert语句脚本

    - **使用数据库工具**:大多数数据库管理工具(如MySQL Workbench, SQL Server Management Studio等)都提供了生成INSERT语句的功能。 - **编程方式**:通过编程语言(如Python, Java)连接数据库,遍历表中所有行...

    SQLserver 2008将数据导出到Sql脚本文件的方法

    请看下面的操作图解。 1.使用Sql Server Management Studio 2008 连接数据库。 2.选中要导出数据的数据库节点,点鼠标右键,在菜单中...从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过

    SQL SERVER 表数据导出脚本

    根据提供的文件信息,我们可以深入分析并提取出与“SQL Server 表数据导出脚本”相关的几个关键知识点。 ### 知识点一:SQL Server 存储过程的创建与删除 在给定的部分内容中,首先出现的是一个存储过程的创建逻辑...

    SQL SERVER脚本表结构和数据导出工具

    在SQL Server中,脚本通常指的是T-SQL(Transact-SQL)语句的集合,这些语句可以创建数据库对象,如表、视图、存储过程等,或者执行数据操作。当我们说“脚本表结构”,我们是指生成一个包含创建该表所需的所有T-SQL...

    生成提取表中数据的sql脚本

    根据给定的信息,本文将详细解释如何生成一个用于提取数据库表中数据的SQL脚本,并且探讨了在SQL Server环境中创建此类脚本的一些关键步骤和技术要点。 ### SQL Server中的数据提取脚本 #### 标题解析 - **生成...

    SQL Server将数据导出SQL脚本的方法

    在SQL Server中,将数据导出为SQL脚本是一项常用的操作,这有助于备份数据库、迁移数据或在不同的环境中重新创建数据。通常,SQL Server Management Studio (SSMS) 提供的功能仅能导出数据库架构,包括表结构、索引...

    sqlserver 批量创建表

    假设我们有一个表结构模板,如一个包含所有表定义的元数据表,我们可以遍历这个元数据表,为每个表名生成相应的CREATE TABLE语句。以下是一个简单的示例: ```sql DECLARE @TableName NVARCHAR(128) DECLARE ...

    存储过程生成器(sql server 2000)

    在SQL Server 2000中,存储过程是一种预编译的SQL代码集合,它可以视为数据库中的可重用函数,用于执行特定任务或一组任务。存储过程极大地提高了数据库的效率和安全性,因为它们可以减少网络流量,提升性能,并且...

    SQL脚本生成器 SQL脚本生成器

    - **数据库对象导出**:SQL脚本生成器能够将数据库中的表、视图、存储过程、触发器、函数等对象导出为SQL脚本,方便进行备份或复制到其他数据库。 - **数据迁移**:通过生成包含数据的INSERT语句,可以实现数据从...

    SQL Server 脚本导出器

    "脚本导出"功能在SQL Server中是非常重要的,它允许用户将数据库对象(如表、视图、存储过程等)的创建语句导出为文本文件,以便在其他地方重新创建这些对象。通过使用SQL Server 脚本导出器,你可以轻松地将整个...

    SQL2005存储过程自动生成器

    描述中提到,“自动生成存储过程,根据数据库的表自动生成创建存储过程语句”,这意味着该工具会分析数据库中的表结构,包括字段名、数据类型以及可能存在的约束条件,然后生成相应的SQL脚本。用户只需指定表名和...

Global site tag (gtag.js) - Google Analytics