IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_CVS2DB')
BEGIN
PRINT N'删除存储过程 sp_CVS2DB'
DROP Procedure sp_CVS2DB
END
GO
PRINT N'生成存储过程 sp_CVS2DB'
GO
/******************************************************************************
** 文件: sp_CVS2DB.SQL
** 名称: sp_CVS2DB
** 功能: 读取cvs文件导入到SQL数据中
** 作者: Dong.Wu
** 发布: 2007-09-09
**
*******************************************************************************
** 返回值列表
*******************************************************************************
** 返回值: 涵义:
** ------- -----------------------------------------------------------
** 0 操作成功
**
**
*******************************************************************************
** 其它说明
*******************************************************************************
**
**
*******************************************************************************
** 修订日志
*******************************************************************************
** 日期: 作者: 修订备注:
** ---------- -------- -----------------------------------------------
**
*******************************************************************************/
CREATE Procedure sp_CVS2DB
@Filepath varchar(500), ----文件路径
@FileName varchar(100), ----文件名称
@TableName varchar(128) ----需要导入的表名
AS
DECLARE @strSQL Varchar(1000)
DECLARE @iError INT --出错代码
BEGIN TRAN TranQ
---删除temp表原有记录重新INSERT数据
SET @strSQL =
'DELETE FROM '+@TableName+'
INSERT INTO '+@TableName+'
SELECT * FROM
OPENROWSET(''MSDASQL'',''Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR='+@Filepath+';Extensions=CSV;'',
''SELECT * FROM '+@FileName+''')'
Exec (@strSQL)
Set @iError = @@ERROR
If @iError <> 0
Begin
ROLLBACK TRAN TranQ
Return -1001
End
COMMIT TRAN TranQ
Return 0
GO
GRANT EXEC ON sp_CVS2DB TO PUBLIC
GO
BEGIN
PRINT N'删除存储过程 sp_CVS2DB'
DROP Procedure sp_CVS2DB
END
GO
PRINT N'生成存储过程 sp_CVS2DB'
GO
/******************************************************************************
** 文件: sp_CVS2DB.SQL
** 名称: sp_CVS2DB
** 功能: 读取cvs文件导入到SQL数据中
** 作者: Dong.Wu
** 发布: 2007-09-09
**
*******************************************************************************
** 返回值列表
*******************************************************************************
** 返回值: 涵义:
** ------- -----------------------------------------------------------
** 0 操作成功
**
**
*******************************************************************************
** 其它说明
*******************************************************************************
**
**
*******************************************************************************
** 修订日志
*******************************************************************************
** 日期: 作者: 修订备注:
** ---------- -------- -----------------------------------------------
**
*******************************************************************************/
CREATE Procedure sp_CVS2DB
@Filepath varchar(500), ----文件路径
@FileName varchar(100), ----文件名称
@TableName varchar(128) ----需要导入的表名
AS
DECLARE @strSQL Varchar(1000)
DECLARE @iError INT --出错代码
BEGIN TRAN TranQ
---删除temp表原有记录重新INSERT数据
SET @strSQL =
'DELETE FROM '+@TableName+'
INSERT INTO '+@TableName+'
SELECT * FROM
OPENROWSET(''MSDASQL'',''Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR='+@Filepath+';Extensions=CSV;'',
''SELECT * FROM '+@FileName+''')'
Exec (@strSQL)
Set @iError = @@ERROR
If @iError <> 0
Begin
ROLLBACK TRAN TranQ
Return -1001
End
COMMIT TRAN TranQ
Return 0
GO
GRANT EXEC ON sp_CVS2DB TO PUBLIC
GO
CVS导入SQL中000231会变成231处理办法;
在文件目录下创建一个名为 Schema.ini 的文本文件名
--写上如下内容(--后面的是注释,不要写到文本文件中)
[a.txt] --下面的格式是为a.txt文件做说明的
ColNameHeader=False --a.txt文件的第一行不是字段名
Format=CSVDelimited --字段分隔符是CSV分隔符,即,
Col1="col1" Integer --a.txt中,第1列的列名是col1,类型是int
Col2="col2" char width 50 --a.txt中,第2列的列名是col2,类型是int
MaxScanRows=0 ---扫描整个文件
CharacterSet=ANSI ---ANSI 字符集
指定文件格式
格式说明 表格式 Schema.ini 格式描述
Tab 制表符分隔 文件中的字段用制表符分隔 Format=TabDelimited
CSV 分隔 文件中的字段用逗号来分隔 Format=CSVDelimited
自定义分隔 文件中的字段可以用任何字符 Format=Delimited(自定义分隔符) 如:(#)
来分隔,所有的字符都可以
用来分隔,包括空格,但是
双引号 ( " ) 除外
- 或者没有分隔符 - Format=Delimited( )
固定宽度 文件中的字段为固定长度 Char Width 10
还有,在读取的数据中要是碰到 19" 液晶要替换为 19""或19''
在文件目录下创建一个名为 Schema.ini 的文本文件名
--写上如下内容(--后面的是注释,不要写到文本文件中)
[a.txt] --下面的格式是为a.txt文件做说明的
ColNameHeader=False --a.txt文件的第一行不是字段名
Format=CSVDelimited --字段分隔符是CSV分隔符,即,
Col1="col1" Integer --a.txt中,第1列的列名是col1,类型是int
Col2="col2" char width 50 --a.txt中,第2列的列名是col2,类型是int
MaxScanRows=0 ---扫描整个文件
CharacterSet=ANSI ---ANSI 字符集
指定文件格式
格式说明 表格式 Schema.ini 格式描述
Tab 制表符分隔 文件中的字段用制表符分隔 Format=TabDelimited
CSV 分隔 文件中的字段用逗号来分隔 Format=CSVDelimited
自定义分隔 文件中的字段可以用任何字符 Format=Delimited(自定义分隔符) 如:(#)
来分隔,所有的字符都可以
用来分隔,包括空格,但是
双引号 ( " ) 除外
- 或者没有分隔符 - Format=Delimited( )
固定宽度 文件中的字段为固定长度 Char Width 10
还有,在读取的数据中要是碰到 19" 液晶要替换为 19""或19''