SQL Server 2005用存储过程从服务器中导出数据到本地自己的数据库
来源:互联网 发布:网络创业靠谱吗 编辑:程序博客网 时间:2024/05/01 04:29
SQL2005里生成sql脚本只是导出了数据库结构,数据不会导出,用导出功能只能导出到服务器上其他的数据库(数据库导出到数据库,目的数据库检测不到我本地PC)
so 只能用存储过程将表中的数据一个一个导出到.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 orcharindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in currentdatabase'
return
end
if OBJECTPROPERTY(@objectId,'IsTable')< > 1 -- 判断对象是否是table
begin
print 'The object is not table'
return
end
select@ident=status&0x80 from syscolumns whereid=@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 fromsyscolumns 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 whenlen(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case whenlen(@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 你的表名
选择【执行模式】为“以文本显示结果”,然后将运行后的结果存成.sql,加上用SQL Server生成的数据库脚本就可以了。
- SQL Server 2005用存储过程从服务器中导出数据到本地自己的数据库
- sql anywhere 的unload和reload(数据迁移) 用微软sql server 的DTS实现从 ORACLE导出数据到Sql Anywhere数据库中
- 从SQL Azure导出数据到本地数据库
- 将远程服务器上的SQL SERVER数据库导出到本地
- Http Get 从服务器中获取数据 存储到本地
- oracle从服务器导出数据到本地的方法
- SQL SERVER数据库导出表或查询到EXCEL文件的存储过程
- SQL SERVER里从一个数据库导出表结构和表数据到另一个表中
- Sql Server存储过程从一个表中抓取数据填充到另一张表中
- SQL Server导出表到EXCEL文件的存储过程
- SQL Server导出表到EXCEL文件的存储过程
- [PL/SQL]导入文件内的数据到数据库(针对本博的导出存储过程)
- Oracle采用存储过程执行sql语句,将查询到的数据导出到EXCEL中
- 用SQL语句将远程SQL Server数据库中表数据导入到本地数据库相应的表中
- 用SQL语句将远程SQL Server数据库中表数据导入到本地数据库相应的表中
- SQL SERVER 数据导出EXCEL 的存储过程
- SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题
- SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程)
- 自动生成Makefile
- autotools入门笔记(一)
- ios开发点滴-Designing for iOS: Graphics & Performance
- EXTJS4.0+MVC表格基础实例(分页查询,修改和删除)
- Java String\StringBuffer\Stringbuilder
- SQL Server 2005用存储过程从服务器中导出数据到本地自己的数据库
- 银行业务调度系统
- java final关键字
- 动态修改数据源配置
- http://m2eclipse.sonatype.org/sites/m2e地址更换了
- MultiByteToWideChar和WideCharToMultiByte用法详解
- HttpClient 学习整理
- velocity中的velocityCounter不起作用的原因
- iOS调试技巧