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

存储过程|脚本|数据

作者:zlt982001

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

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 '+@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 你的表名

时间: 2024-09-15 14:45:51

将表数据生成SQL脚本的存储过程的相关文章

将表数据生成Insert脚本 比较好用的生成插入语句的SQL脚本

复制代码 代码如下:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: 华岭 -- Create date: 2008-10-28 -- Description: 将表数据生成Insert脚本 -- Demo : exec pCreateInsertScript 'BexmCodeType','dictypeid = 61' -- ===

SQL Server 开发之 复制表数据的SQL脚本生成器

server|脚本|数据 使用SQL Server 2000自带的"生成SQL脚本"工具,可以生成创建表.视图.存储过程等的SQL脚本.那么,能否将表中的数据也生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中呢?答案是肯定的.下面的存储过程是一位高人写的,这位高人的姓氏已无人知晓,但SQL Server社区中偶尔还可看到此不朽之作.CREATE PROCEDURE  dbo.OutputData       @tablename   sysname 

pl /sql导入导出表结构,表数据,sql脚本

导出表结构: Tools-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件 导出表数据: Tools-->Export Tables-->选择表,选择SQL Inserts-->.sql文件   导入表结构: 执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys 导入表数据: 执行刚刚导出的sql文件

将数据库表中的数据生成Insert脚本的存储过程!!!

存储过程|脚本|数据|数据库 CREATE Procedure DBGenData?@tableName? Varchar(100)?--表名ASDECLARE @columnName VARCHAR(100)??--列名DECLARE @TypeName VARCHAR(100)??--数据类型DECLARE @columns VARCHAR(3000)???--DECLARE @columnsAndhead VARCHAR(3000)?-- SET @columnsAndhead = 'IN

php 导出 mysql 数据表数据生成.sql文件

$database='';//数据库教程名 $options=array(     'hostname' => '',//ip地址     'charset' => 'utf8',//编码     'filename' => $database.'.sql',//文件名     'username' => '',     'password' => '' ); mysql_connect($options['hostname'],$options['username'],$o

自动生成insert数据的SQL脚本

判断当表存在标识列的时候就要允许将显式值插入表的标识列中,设置: Set Identity_insert TableName Off 判断数据类型: 如,varchar,char,datetime,nvarchar,nchar,uniqueidentifier时候,在insert字段中就要增加双引号,否则就不加. Use TestGoDeclare @Table1 nvarchar(128), @Table2 nvarchar(128), @Sql1 nvarchar(4000), @Sql2

power designer pdm生成sql脚本和数据库以及逆向工程

正向工程:PDM--->sql or database 项目中我们经常需要根据PDM生成sql脚本,然后由sql脚本一起执行到数据库中,如果PDM中表比较多,我们一个个去建的话会很费时间,根据需要我们也可以直接将pdm生成到数据库中. 逆向工程:sql or database --->PDM 有时我们也需要根据sql脚本生成pdm图,或者是数据库的最新信息生成到PDM中. 下面一一做介绍说明: 一.pdm生成sql:         1.Database --->Database Gen

PDM生成sql脚本添加注释的问题

问题描述 pdm 里面的物理表 在倒sql 出来的时候(db2数据库),我想添加列注释,根据网上的方法,不管我怎么设置,列属性就是加不上.我的具体方法如下:数据库--->EDIT CURRENT DBMS ...然后图片如下...倒出来的sql 为:DROP TABLE CCR_AREA_RISK;--==============================================================-- Table: CCR_AREA_RISK--===========

Excel数据生成Sql语句的方法

选中想要生成的列,套用表格格式,选中表包含标题的选项确定,然后在最右边的一列第二行处,点击函数功能,选择CONCATENATE,在文本里输入想要的结构即可  代码如下 复制代码 ,=CONCATENATE("('",[@id],"','",[@name],"'),") 这样生成的之后的语句可以写为  代码如下 复制代码 insert table1 (id,name) values ('1', "测试1"),('2', &quo