输入表名,生成插入语句
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 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 t_xt_position_level
选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。
另外可以利用第三方工具,导出饮食备注型字段的数据数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。
还有最完善的方式就是自己编程实现导入导出,这样可以应对所有情况的数据转换。
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 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 t_xt_position_level
选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。
另外可以利用第三方工具,导出饮食备注型字段的数据数据可以用powerbuilder。在database painter里面,用SQL选出,或者直接打开表,点击生成的list datawindow,然后在菜单file->save rows as->选择SQL,那么生成的SQL语句就包括建表和insert数据的SQL了。
还有最完善的方式就是自己编程实现导入导出,这样可以应对所有情况的数据转换。
发表评论
-
oracle去除重复数据常用的方法
2023-12-07 11:11 504SELECT * from ecm_query t whe ... -
mysql得到表名和字段
2018-05-03 10:21 0引用 SELECT table_name FROM INFOR ... -
mysql级联查询
2017-11-30 16:48 1330实现效果 例如: 中国 下的 省 市 县 乡 输入 省的 ... -
oracle恢复删除的数据
2017-09-07 11:16 612分为两种方法:scn和时间戳两种方法恢复。 一、通过scn恢复 ... -
oracle 简单存储 一个表的数据转入另外的表
2017-06-06 19:58 705线损统计导入 select * from xs_gz ... -
Oracle 关联两表写update语句
2017-05-25 09:28 1192两种方法: -- 方法1. UPDATE 表2 SE ... -
oracle 触发器实例
2017-03-29 17:09 717//新增字段更改值 create or replace tri ... -
使用oracle 的 PL/Sql 定时执行一个存储过程
2015-03-17 11:19 1593/* 使用oracle 的 PL/Sql 定时执行一个存储过程 ... -
删除oracle末用户的表数据
2015-03-10 16:01 774begin for cr in (select o.obje ... -
一个字符串是否包含另一个字符串(两个字符串内部已逗号隔开)
2014-08-07 11:39 1064CREATE FUNCTION [dbo].[getStrCo ... -
Sql Server判断是否含有汉字、数字、字母
2014-06-26 09:45 2426/*含有字母或数字*/ select * from Ta ... -
sql 获取字符串长度SQL字符串操作汇总
2014-05-06 21:24 1274将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入 ... -
sqlserver锁表
2014-03-31 10:58 824select request_session_id s ... -
sql实现15位身份证转化为18位身份证
2014-02-19 14:22 1638create function f_CID15to18 ... -
如何利用SQL查询语句从SQLSERVER数据库中导入导出EXCEL表格
2013-10-21 16:26 2228如何利用SQL查询语句从SQLSERVER数据库中导入导出E ... -
使用sql语句将一个表中的数据拷贝到另一个表中
2013-08-12 13:59 1054声名:a,b ,都是表 --b表存在(两表结构一样)inser ... -
SQLSERVER游标的使用
2013-02-19 15:41 1116declare @user_name varchar( ... -
Tomcat 内存分配
2011-03-25 17:25 875023233232 -
oracle数据备份和还原
2011-01-21 11:19 940imp jwag/jwag@ORA10 file=d:jw ... -
Oracle存储过程
2011-01-14 13:39 751declare cursor c1 is select * ...
相关推荐
从SQLSERVER数据库中导出记录生成insert into 语句
SQL Server表数据生成INSERT SQL脚本 SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版...
在SQL Server数据库管理中,有时候我们需要将数据库表中的数据导出为SQL语句,以便于备份、迁移或者在其他环境中重建相同的数据结构和内容。针对这个需求,存在一种名为“SQLServer数据库表中数据导出成SQL语句工具...
标题提到的“将sqlserver中的数据导出成为sql语句”是指将SQL Server数据库中的表结构和数据转换为一系列的INSERT INTO SQL语句,这样就可以通过执行这些语句在另一个数据库中重建相同的数据。这一过程对于开发、...
在SQL Server中,可以使用多种工具或T-SQL语句来导出数据,例如`bcp`命令行工具,`SELECT INTO`语句,或者使用SSMS(SQL Server Management Studio)的“任务”>“生成脚本”功能。 4. **Insert语句**:在SQL中,...
它是一个实用的辅助程序,能够自动生成`INSERT INTO`语句,帮助用户将数据从一个表导出为可执行的SQL脚本。这个工具可能包含以下功能: 1. **选择表**:用户可以选择要导出数据的特定表。 2. **指定列**:允许用户...
在SQL Server中,有时我们需要将现有表中的特定数据导出为INSERT语句,以便在其他数据库或备份中重建这些记录。这通常在迁移数据、创建测试数据或者进行数据备份时非常有用。以下是如何将SQL Server表中指定数据转化...
可以将数据库中的数据导出insert into脚本, sql server2008以上版本已经自带导出数据库数据成insert脚本功能,该工具针对2005以下版本.使用时先选择数据库服务器地址,在右侧选择Sql Server login,输入数据库账号...
以上存储过程提供了一种灵活且高效的方式来导出SQL Server表中的数据到`INSERT INTO`脚本。通过动态SQL的使用,该存储过程能够适应不同类型的列,并正确处理NULL值和其他特殊情况。这种脚本化的方法对于备份、数据...
在SQL数据库管理中,有时我们需要将数据库中的数据导出,以便在其他地方或者备份后重新导入。...利用合适的工具或脚本,我们可以轻松地将数据转换为可执行的SQL语句,从而确保数据能够在不同的环境之间无缝转移。
本文将深入探讨如何在C#中导出MSSQL表的数据并生成Insert语句,这对于数据迁移、备份或测试环境的搭建都非常有用。 首先,要实现这个功能,我们需要对SQL Server的ADO.NET库有基本的了解。ADO.NET是微软提供的一个...
它可以从SQL SERVER数据库中读取指定表的数据,并生成对应的INSERT语句,极大地提高了数据迁移或备份的效率。 使用"ExportDBData.exe"之前,你需要先配置"ExportDBData.ini"文件。这个配置文件包含了连接到SQL ...
"SQL数据导出insert语句工具"是一款专门用于帮助用户将SQL查询结果转化为INSERT语句的实用程序,便于快速生成批量插入数据的脚本。这种工具极大地简化了手动编写大量INSERT语句的繁琐工作,提高了工作效率。 首先,...
在SQL Server中,导出插入语句是一种常见的数据...通过理解SQL语句的生成方式和考虑上述因素,你可以更有效地进行数据操作。记住,根据具体情况选择最适合的方法,并始终进行适当的数据验证和备份,以防止数据丢失。
将Microsoft SQL Server(简称MS SQL Server)中的数据导出为SQL插入语句是一个常见的数据库管理操作,主要用于数据备份、迁移或脚本化目的。在给定的文件信息中,一个存储过程`dbo.UspOutputData`被设计用于实现这...
在数据库管理中,生成数据库表的INSERT语句脚本是一项常用的任务,特别是在数据迁移、备份或测试环境中。INSERT语句是SQL语言的一部分,用于向数据库表中插入新的数据记录。以下将详细介绍如何生成这些脚本以及其在...
然而,SQL Server 2005及更早版本并没有内置功能直接将数据导出为INSERT INTO语句,这与Oracle等其他数据库系统有所不同。为了解决这个问题,用户可以通过编写存储过程来实现这一目标。这里介绍一种方法,即创建一个...
可将sql server 数据表生成sql语句 语句中包括建表部分和数据部分 常用作sql server 数据导入 例如:--表 buyi_product_comment 的结构 CREATE TABLE buyi_product_comment(proId varchar(50) not null,companyid ...
在IT行业中,数据库管理和数据迁移是常见的任务,而“导出SQL数据为Insert语句”是一种常用的方法,便于数据备份、迁移或测试环境的搭建。本文将深入探讨这个主题,介绍如何将数据库中的数据转换为Insert语句,并...
在SQL Server数据库管理中,有时候我们需要将数据库中的表结构和数据导出,以便备份、迁移或分享给其他团队成员。SQL Server提供了多种方法来实现这一目标,包括使用T-SQL语句、SQL Server Management Studio (SSMS)...