`
wangchao_17915566
  • 浏览: 169891 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

sqlerver2000使用存储过程导出insert语句

阅读更多

今天使用了一个通过存储过程生成sqlserver数据库insert语句的存储过程,我觉得很好用,谢谢这位高手了

if exists (select * from sysobjects where type='p' and  name='UspOutputData')
   drop proc UspOutputData
GO
CREATE PROCEDURE dbo.UspOutputData 
@tablename sysname 
AS 
declare @column varchar(2000) 
declare @columndata varchar(2000) 
declare @sql varchar(8000) 
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 'The object not exists' 
return 
end 
--此判断不严密 
set @objectname=rtrim(object_name(@objectId)) 
if @objectname is null or charindex(@objectname,@tablename)=0 
begin 
print 'object not in current database' 
return 
end 
-- 判斷對象是否是table 
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 
begin 
print 'The object is not table' 
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' 

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' 
GO

exec UspOutputData T_Sys_Dict_Data 

 

觉得这个不错,最后使用exec UspOutputData T_Sys_Dict_Data 执行存储过程就ok了。 T_Sys_Dict_Data 是表名,任何表都可以。谢谢!
分享到:
评论

相关推荐

    jsp+sqlerver2000学生管理系统

    在学生管理系统中,SQL Server 2000作为数据存储的核心,承载了所有学生信息、成绩、出勤等数据。开发者可以使用SQL语句来创建、查询、更新和删除数据库中的记录,以满足系统各种操作需求。 系统架构上,JSP和SQL ...

    sql sqlerver数据脚本

    对数据库的增删改查操作,存储过程以及子查询的使用。

    自用的sqlerver 2000的一大堆资料

    3. **Transact-SQL(T-SQL)**:SQL Server 2000使用T-SQL进行数据库操作,包括数据查询、插入、更新和删除,以及事务处理、存储过程、触发器等高级功能。 4. **数据库设计**:在SQL Server 2000中,涉及表的设计、...

    sqlerver+2000驱动包

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在2000年发布,提供了广泛的企业级数据管理解决方案。SQL Server 2000驱动包是连接到SQL Server数据库所必需的软件组件,使得应用程序能够与数据库进行...

    基于C#实现的一款方便、快捷的数据库文档查询、导出工具源码,多种数据库的文档查询和导出功能

    基于C#实现的一款方便、快捷的数据库文档查询、导出工具,支持Word、Excel、PDF、Html、Xml、Json、MarkDown等...在此可以对数据库中的表、视图、存储过程等对象实现自定义分组,方便后续管理 3.快捷查询 4.导入导出

    蜗牛Sqlerver代码生成器

    这个是web版的,好处是比较灵活,查询直接选择所须的字段,是其他生成器没有的。删除和修改都可以选字段条件。 有用的话欢迎大家顶一下! 这个是sqlserver数据库。 Mysql版地址:...

    sqlerver大数据添加.txt

    描述:批量导入数据到数据库,将datatable数据快速添加到数据库中,

    Server 2000 批量附加数据库工具

    Server 2000 批量附加数据库工具 【版本未知,2011年6月20日亲测有效】 工具操作简介: 分离数据库不能批量,只能选中后右键分离; 附加数据库,可以批量附加。请先定位到文件夹,点击【搜索数据】按钮,然后选中第...

    shudian.rar_java sqlerver_shudian_书店 JSP 数据库_数据测试

    在实际开发和测试过程中,开发者首先会创建数据库结构,然后编写JavaBean来封装业务逻辑,接着使用JSP来生成动态网页。测试数据的导入可以帮助检查应用程序是否正确地与数据库交互,验证功能的完整性和性能。这个...

    sql server 2005 web查询分析器(c#源码)

    4. **存储过程**:存储过程是一组预先编译的SQL语句,可以在需要时调用执行。它们可以包含控制流语句,提高代码复用性和效率。 5. **函数**:函数是返回单个值的预定义或自定义SQL代码块。它们可以接受参数,根据...

    jdbc java 与sqlerver 数据库连接.pdf

    - **预编译语句(PreparedStatement)**:对于有参数的SQL语句,可以使用`PreparedStatement`,它能提高安全性并优化性能。例如:`PreparedStatement ps = con.prepareStatement("update tb_stu set sname='李四' ...

    windows server 2008 R2 中 SQLerver 2008 R2双机热备

    windows server 2008 R2操作系统中的 SQLerver 2008 R2双机热备配置文档

    mysql_sqlserver_oracle-jdbc.rar

    它提供了Java应用程序连接MySQL数据库的能力,使得开发者可以使用SQL语句执行数据库操作。驱动分为两种类型:Type 1(纯Java驱动)和Type 4(完全Java网络驱动),其中Type 4是当前推荐使用的,因为它无需中间层,...

    购物系统(shopping)用到的技术有(jsp+servlet+java+sqlerver+strut)

    本篇将详细讲解一款基于"jsp+servlet+java+sqlerver+strut"技术栈构建的购物系统,帮助读者深入理解这些技术的应用和交互。 首先,我们来剖析这个系统的基石——JSP(JavaServer Pages)。JSP是一种动态网页技术,...

    基于asp.net+C#+sqlerver开发的竞赛报名系统(源码+系统分析文档).zip

    基于asp.net+C#+sqlerver开发的竞赛报名系统(源码+系统分析文档).zip 本课题旨在设计并实现一个浙警院竞赛报名系统,实现网上报名功能,辅助学校实现竞赛报名的管理。本系统的主要用户为管理员、报名用户;本系统...

    易语言服务器充值收费,客户端注册登录源码

    查卡,试用,试出,写终身卡登陆,登陆,新服务处理,处理为新数组数据,写历史记录,导出未使用卡_被单击,检查类型,读显数据,分页初始化,按页显示,显页语句,导出未使用卡,读回配置项,客户连接,新处理函数

    SQL_server_与Oracle数据库开发区别

    - **Oracle**:`INSERT INTO new_table (col1) SELECT col1 FROM old_table` - **SQL Server**:同上 - 如果目标表不存在: - **Oracle**:`CREATE TABLE new_table AS SELECT * FROM old_table` - **SQL ...

    Sqltest.zip

    - **添加数据**:通过INSERT语句向数据库表中插入新的记录。 - **删除数据**:使用DELETE语句移除不需要的记录,可以是单条或批量删除。 - **查询数据**:通过SELECT语句从数据库中检索特定信息,可以组合使用...

    Sql Server查询优化语句.md

    1、查询索引大小或使用率;2、查询运行慢的语句;3、查询触发器;4、重新生成索引;5、DBCC;6、查询堵塞

    kettle 连接sqlserver 驱动

    此外,了解 SQL Server 特有的特性,如存储过程、视图、触发器等,以及如何在 Kettle 中使用它们进行数据处理也是很重要的。Kettle 支持 SQL 查询的执行,可以用于执行 DML(数据操纵语言)操作,比如 INSERT、...

Global site tag (gtag.js) - Google Analytics