小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

向 SQLServer2000動態(tài)導入Excel的存儲過程如何實現(xiàn)

 水底の小魚 2009-05-06
呵呵,搞定了。
過程是這樣的。
首先要在庫中建立一個表,這個表要和excel的字段名對應。
我們在操作的時候是不用建立表的,但是在寫存儲過程的時候需要建立表,這點是比較麻煩。
然后寫存儲過程,4樓的牛人已經(jīng)寫的很清楚了,我這里再寫一遍哈哈。
CREATE PROCEDURE spExcelOutIn

@strOptions varchar(200) = NULL,
@strWhere nvarchar(4000) = NULL,--導入/導出查詢條件(包括Where 關鍵字)

@strExcelPath nvarchar(1000) = NULL,--Excel的絕對路徑
@strExcelSheetName nvarchar(50) = NULL,--Excel里要導入的工作表名稱 如Sheet2,注意,后面不要加上$
@strExcelFiled nvarchar(1000) = NULL,--Excel工作表的字段

@strSqlTableName nvarchar(100) = NULL,--Sql數(shù)據(jù)庫導入/導出表名
@strSqlFiled nvarchar(1000) = NULL--Sql表的字段

AS

DECLARE @strSql nvarchar(4000)

IF OBJECT_ID('tempdb..##Temp') IS NOT NULL DROP TABLE ##Temp


/* 導入 */
IF @strOptions='In' AND NOT @strExcelPath IS NULL BEGIN

SET @strExcelPath = '''Microsoft.Jet.OLEDB.4.0'',''Data Source="' + @strExcelPath + '";User ID=Admin;Password=;Extended properties=Excel 5.0'''

--將數(shù)據(jù)存放到臨時表(一)
SET @strSql =
'SELECT ' + @strExcelFiled +
' INTO ##Temp
FROM
OpenDataSource('+ @strExcelPath +')...'+ @strExcelSheetName +'$ '
+@strWhere

--PRINT(@strSql)
EXEC(@strSql)

--將數(shù)據(jù)從臨時表導入到sql數(shù)據(jù)庫表(二,分兩步可以做更多的處理)
SET @strSql = 'INSERT INTO ' + @strSqlTableName + '('+ @strSqlFiled +') SELECT * FROM ##Temp'
--PRINT(@strSql)
EXEC(@strSql)

--SELECT * FROM ##Temp
DROP TABLE ##Temp

END

/* 導出 */
IF @strOptions='Out' AND NOT @strExcelPath IS NULL BEGIN

SET @strExcelPath = ''
--導成類似(不是真正的Excel,是文本格式)Excel的文件,這里是固定的,真正用時需要修改相關參數(shù)
--EXEC master..xp_cmdshell 'bcp "SELECT * FROM wy_福州分公司.dbo.TExcelOutIn" queryout C:\test.xls -c -S"(local)" -U"sa" -P"123"'
END
GO

下一步是調(diào)用。
SET ANSI_WARNINGS ON--返回警告
GO
SET ANSI_NULLS ON-- 指定在對空值使用等于  (=)  和不等于  ( <>)  比較運算符時,這些運算符的  SQL-92  遵從行為。
GO
--將Excel數(shù)據(jù)導入到sql數(shù)據(jù)庫
--版權 : 啟程 letwego.cn
--調(diào)用實例
EXEC spExcelOutIn
@strOptions = 'In',
@strWhere = 'WHERE sid>0',--導入/導出查詢條件(包括Where 關鍵字),這里是excel表中的字段也是sql表中的字段。
@strExcelPath = 'd:\a.xls',--Excel的絕對路徑
@strExcelSheetName = 'Sheet1',--Excel里要導入的工作表名稱 如Sheet2,注意,后面不要加上$
@strExcelFiled = 'sid,sno,sname',--Excel工作表的字段

@strSqlTableName = 't_test',--Sql數(shù)據(jù)庫導入表名
@strSqlFiled = 'sid,sno,sname'--Sql表的字段

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多