惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
罗磊的独立博客
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
量子位
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
B
Blog RSS Feed
腾讯CDC
博客园_首页
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
博客园 - Franky
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
D
Docker
P
Privacy & Cybersecurity Law Blog
S
Securelist
V
V2EX
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
The Hacker News
The Hacker News
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
Help Net Security
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Cloudbric
Cloudbric
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Latest news
Latest news
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
V2EX - 技术
V2EX - 技术

博客园 - 江湖工夫

TextBox控件TextMode=Password时赋值 [转]随滚动条滚动的层(支持IE6,FF2) Iframe页面内容变更页面自动改变大小(非加载时自适应大小) 抓取网络文件的URL地址作附件发送 SQL注入的漏洞,过滤httprequest Visual SourceSafe应用守则[转] Microsoft SQL Server 分析服务 SQL中使用DISTINCT显示多个字段的方法(不使用DISTINCT了) GridView分页后跳转其他页面进行添加,编辑,删除操作后,仍返回到当前页码[原] Ajax的按钮事件效果 层的移动,使用了jquery asp.net(C#)处理数据一个通用类,包括存储过程,适用于初学者[转] IE和Firefox在JavaScript方面的兼容性(汇编) asp.net 对xml文件的读写,添加,修改,删除操作[转] 一些动画进度的图标链接 邹建的通用分页存储过程[转] SQL SERVER事务处理[转] SQL与MDX语法的比较 一个存储过程
一个存储过程实现将Excel数据导入数据库
江湖工夫 · 2007-12-25 · via 博客园 - 江湖工夫

数据库:SQL Server2000

CREATE PROCEDURE [dbo].[au_XLS2TMP]
@sheet NVARCHAR(50)='UserList'
AS
DECLARE @STR VARCHAR(2000)
/*
sp_addlinkedserver--创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问
@server='USER_LIST',--被访问的服务器别名
@srvproduct='USER_LIST',--要添加为链接服务器的 OLE DB 数据源的产品名称
@datasrc='d:\file\Users.xls'   --要访问的服务器
*/

EXEC sp_addlinkedserver @server='USER_LIST'@srvproduct='USER_LIST'@provider='Microsoft.Jet.OLEDB.4.0'@datasrc='d:\file\Users.xls'@provstr='Excel 8.0;HDR=Yes;IMEX=1;'
EXEC sp_addlinkedsrvlogin 'USER_LIST','false'NULLNULLNULL
/*
当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。 
当 SET XACT_ABORT 为 OFF 时,有时只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。如果错误很严重,那么即使 SET XACT_ABORT 为 OFF,也可能回滚整个事务。
编译错误(如语法错误)不受 SET XACT_ABORT 的影响。
*/

SET XACT_ABORT ON
/*
BEGIN DISTRIBUTED TRAN:跟踪 MS DTC 实用工具中的分布式事务
详细可参考:http://www.cnblogs.com/alanliu/archive/2007/12/25/1014259.html
*/

BEGIN DISTRIBUTED TRAN

SET @STR = 'INSERT INTO dbo.MEMBERS ' + 
    
'(USERNAME,USERPASS,EMAIL) ' + 
    
'SELECT ' + 
    
'USERNAME,USERPASS,EMAIL ' + 
    
'FROM OPENQUERY(USER_LIST,''SELECT * FROM [' + 
    
@sheet + '$]'')'
EXEC (@STR)

IF @@ERROR > 0
    
GOTO ChkRollBack

ChkRollBack:
IF @@ERROR > 0
    
ROLLBACK TRAN
ELSE
    
COMMIT TRAN

SET XACT_ABORT OFF

EXEC sp_dropserver 'USER_LIST','droplogins'
GO