`
michales003
  • 浏览: 403625 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

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

    博客分类:
  • J2EE
阅读更多

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 @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

if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
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 into '+@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 你的表名

分享到:
评论

相关推荐

    MSsql数据表生成sql脚本

    本文将深入探讨“MSsql数据表生成sql脚本”这一主题,以及如何利用“顺风数据库工具”来实现这个过程。 首先,让我们理解SQL脚本的基本概念。SQL脚本是一系列预先编写好的SQL命令,可以一次性执行多个操作,如创建...

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

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

    读取数据库表生成SQL脚本.zip

    "读取数据库表生成SQL脚本.zip"这个文件包显然提供了一个小工具,它可以帮助用户方便地从数据库中读取表格信息并自动生成相应的SQL脚本。这在数据迁移、备份、或者进行数据库结构分析时非常实用。下面将详细讨论相关...

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

    6. **生成SQL脚本**: - 最终将生成一个SQL脚本,其中包含一系列`INSERT`语句,用于将源表中的数据复制到另一个地方。 ### 总结 本文通过分析提供的存储过程代码,详细介绍了如何生成一个用于从SQL Server表中提取...

    sqlserver2005/2000生成带带数据的脚本(生成器)

    SQL Server 2000和2005版本默认的脚本生成工具虽然能够生成数据库结构的DDL(Data Definition Language)脚本,但并不包括表内的数据,这无疑增加了数据库管理员的工作负担。为了克服这个限制,出现了专门的工具或...

    sql server数据库中数据生成sql脚本的工具

    SQL Server提供了一些内置工具和第三方软件来实现这一目标,其中“sql server数据库中数据生成sql脚本的工具”就是这类应用的一个实例。 1. **SQL Server Management Studio (SSMS)** SQL Server Management ...

    PowerDesigner通过excel生成sql脚本.rar

    PowerDesigner是一款强大的数据库设计工具,它能够帮助数据库管理员和开发者进行数据建模、数据库设计以及生成SQL脚本等工作。在数据库开发过程中,PowerDesigner扮演着重要角色,它提供了概念数据模型(CDM)、物理...

    SQL2005存储过程自动生成器

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

    将表中数据导出生成sql脚本

    先执行该.sql文件语句生成名为outputdata的存储过程,再通过exec OutputData 'tablename'语句即可生成对应表中数据的sql脚本

    SQL2000如何生成SQL脚本

    在SQL Server 2000中,生成SQL脚本是一个重要的数据库管理任务,它可以帮助我们备份数据库结构,包括表、视图、存储过程、触发器等,也可以用于迁移数据到其他环境或者创建测试数据库。下面将详细介绍如何在SQL ...

    sqlserver存储过程生成器

    在使用"存储过程生成器"这个工具时,首先需要正确连接到SQL Server数据库,然后选择要操作的数据库和表,工具将根据选定的信息自动生成相应的存储过程代码。生成的代码可以在SQL Server Management Studio (SSMS) 中...

    PowerDesigner通过物理数据模型正向生成sql脚本并通过dbms创建表

    PowerDesigner是一款强大的数据库设计工具,它提供了从概念数据模型(CDM)、逻辑数据模型(LDM)到物理数据模型(PDM)的转换,并能够正向工程生成SQL脚本,帮助开发者快速创建数据库结构。在数据库开发过程中,...

    Sql Server 存储过程的导出导入.doc

    点击“完成”即可生成包含所有存储过程的SQL脚本文件。 接下来,我们讨论导入存储过程的流程: 1. 同样在SSMS中,连接到目标数据库,即你想要导入存储过程的数据库。 2. 通过“工具”菜单打开“SQL Server查询分析...

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

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

    为SQL server 2000数据生成脚本

    总之,生成SQL Server 2000的数据脚本是一项基础但重要的工作,它可以帮助我们更好地管理和维护数据库。无论是使用内置的SSMS还是第三方工具,理解这个过程的关键知识点都能帮助我们在面对数据管理挑战时更加...

    读取Excel生成Sql脚本

    "读取Excel生成Sql脚本"是一个实用的工具,它能够帮助我们自动化地从Excel表格中提取数据,生成相应的SQL语句,并将其执行到数据库中。这个工具对于数据迁移、数据分析或者数据导入等任务尤其方便,可以显著提高工作...

    SQL SERVER 数据自动生成SQL语句

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

    SQL表记录脚本生成器

    SQL表记录脚本生成器是一种实用工具,专为数据库管理员和开发人员设计,它能够方便地将数据库中的表结构、索引以及所有记录转换为SQL脚本。这种工具在数据备份、迁移和恢复过程中扮演着关键角色,尤其对于那些需要...

    Mysql快速生成10000条随机数据(存储过程)脚本

    通过存储过程快速生成实验所需的随机数据,包含创建表,创建存储过程和调用存储过程

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

    - **生成脚本**:点击生成按钮,软件将自动生成SQL脚本,用户可以选择保存到本地或直接复制到剪贴板。 - **执行脚本**:在目标数据库上运行生成的脚本,完成数据库的创建、更新或数据迁移。 4. **作者开发的SQL ...

Global site tag (gtag.js) - Google Analytics