"a ", "b ", "c ", "d ", "e "
00001, 7398,MICROSOFT PRESS SPECIAL,49.99, 0-7356-0652-8
00002, 7832, MICROSOFT - WWF , 45.63, 0-4562-0582-5
00003, 5643, MICROSOFT - WWF , 21.5 , 0-5545-0457-7
用SELECT * FROM OPENROWSET('MSDASQL.1','Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=e:\','select * from a.txt') 导入到sql
用INSERT INTO table1(a,b,c,d) SELECT * FROM OPENROWSET('MSDASQL.1','Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=e:\','select * from a.txt')
00001, 7398,MICROSOFT PRESS SPECIAL,49.99, 0-7356-0652-8
00002, 7832, MICROSOFT - WWF , 45.63, 0-4562-0582-5
00003, 5643, MICROSOFT - WWF , 21.5 , 0-5545-0457-7
用SELECT * FROM OPENROWSET('MSDASQL.1','Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=e:\','select * from a.txt') 导入到sql
用INSERT INTO table1(a,b,c,d) SELECT * FROM OPENROWSET('MSDASQL.1','Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=e:\','select * from a.txt')
此示例创建一台直接访问文本文件的链接服务器,而没有将这些文件链接为 Access .mdb 文件中的表。提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串为"Text"。数据源是包含文本文件的目录的完整路径名。schema.ini 文件(描述文本文件的结构)必须与此文本文件存在于相同的目录中。有关创建 schema.ini 文件的更多信息,请参见 Jet 数据库引擎文档。--Create a linked server
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\data\distqry',
NULL,
'Text'
GO--Set up login mappings
EXEC sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL
GO--List the tables in the linked server
EXEC sp_tables_ex txtsrv
GO--Query one of the tables: file1#txt
--using a 4-part name
SELECT *
FROM txtsrv...[file1#txt]
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
Declare @tmp int
declare @msg varchar(3000)SET @msg='Hello. MS SQL Server 2000. I Love you!!!' --這字串將會被寫到SQL Server的安裝目錄下的Nipsan.Txt文件里面/* 取得SQL Server的安裝路徑*/
declare @strPath nvarchar(512)
Exec sp_MSGet_Setup_paths @strPath OUTPUT
Set @strPath=@strPath+'\Nipsan.Txt' --組成文件名
--創建Scripting組件實例
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END--創建文件
EXEC @hr = sp_OAMethod @object, 'CreateTextFile', @tmp OUTPUT , @strPath
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
--把@msg寫到文件里面去
EXEC @hr = sp_OAMethod @tmp, 'Write',NULL, @msg
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
--關閉文件
EXEC @hr = sp_OAMethod @tmp, 'Close',NULL
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
-----------寫文件操作Demo完成-----------------------------------------------------------------打開文件
EXEC @hr = sp_OAMethod @object, 'OpenTextFile', @tmp OUTPUT ,@strPath
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
ENDSET @msg=''
--讀文件
EXEC @hr = sp_OAMethod @tmp, 'Read', @msg OUT,3000
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
-----讀文件操作Demo完成
SELECT @msg AS RESULT
这是从文本文件 a.txt中取得数据导入tabel1中是吗?那么
SELECT * FROM OPENROWSET('MSDASQL.1','Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=e:\','select * from a.txt')
是什么意思?OPENROWSET 代表什么??
openrewset是分布式查询语句!
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL.1' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序 管理器] 未发现数据源名称并且未指定默认驱动程序]什么数据源名称,这用到数据源了吗?
winexec "bcp db.dbo.table -out|in 'd:\1.txt' -c -t'#' -Usa -P"
其中 out 和in分别指导入和导出, 指定路径和用户名、密码
EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导入 EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导出BULK INSERT yourdb.dbo.ttt
FROM 'c:\temp1.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
goselect * from ttt
EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
这个从数据库导入文本我已测试成功了。
可是从文本导入数据库我怎么执行不成功?