您的位置:首页 > 数据库

一个存储过程实现将Excel数据导入数据库

2010-07-20 18:58 507 查看
数据库:SQL Server2000

CREATE PROCEDURE [dbo].[au_XLS2TMP]
@sheet NVARCHAR(50)='UserList'
AS
DECLARE @STR VARCHAR(2000)
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', NULL, NULL, NULL
SET XACT_ABORT ON
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: