打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MSSQL從文件導入數據
alter procedure [dbo].[File2Table2] 
@servername varchar(200)  --服务器名 
,@username varchar(200)   --用户名,如果用NT验证方式,则为空'' 
,@password varchar(200)   --密码 
,@tbname nvarchar(500)   --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表 
,@filename nvarchar(1000)  --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt 
,@isout bit      --1为导出,0为导入 
as 
declare @sql nvarchar(4000

if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表 
begin 
 set @sql=N'BULK INSERT '+@tbname
 +N' FROM '''+@filename+''''
 +N'WITH
 ( 
   FIELDTERMINATOR = 
''|'',
   ROWTERMINATOR = 
''|\n''
 )
'
 exec sp_executesql @sql
end 
else 
begin --导出整个数据库,定义游标,取出所有的用户表 
 declare @m_tbname nvarchar(250
 if right(@filename,1)<>'\' set @filename=@filename+'\' 

 set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U''' 
 exec(@m_tbname
 open #tb 
 fetch next from #tb into @m_tbname 
 while @@fetch_status=0 
 begin 
  set @sql=N'BULK INSERT '+@m_tbname
  +N' FROM '''+@filename+@m_tbname+'.txt'''
  +N' WITH
  ( 
    FIELDTERMINATOR = 
''|'',
    ROWTERMINATOR = 
''|\n''
  )
'
  print @sql
  exec sp_executesql @sql 
  fetch next from #tb into @m_tbname 
 end 
 close #tb 
 deallocate #tb  
end 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
导入/导出Excel-完全正确-推荐
SQL Server 2005 查看数据库表的大小 按照表大小排列
SQL Server备份数据库清除过期备份的存储过程
SQL Server 游标运用:批量创建、删除链接服务器
查询指定的表在那些数据库中存在
搜索指定的数据在哪个对象中存在
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服