使用T-SQL批量插入将错误的数据类型转换为null

时间:2017-04-20 15:03:44

标签: wpf vb.net vba tsql ms-access

我正在将Access mdb应用程序转换为使用本地t-sql数据库的WPF应用程序。

在这个应用程序中,它使用DoCmd.TransferText导入制表符分隔的文本文件,所以我使用的是t-sql批量插入,如下所示:

CREATE PROCEDURE [dbo].[sp_insLoans]
@FileLocation nvarchar(500)
AS
DECLARE @sql NVARCHAR(4000) = 'BULK INSERT tblLOAN FROM ''' + @FileLocation + ''' WITH ( FIELDTERMINATOR =''\t'', ROWTERMINATOR =''\r'' )';
exec(@sql)

但无论出于何种原因,有时这些文件在数字列中都有一个字母。 DoCmd.TransferText函数似乎将其转换为null / blank。

当我进行批量插入时,有没有办法可以将此字母转换为null?

1 个答案:

答案 0 :(得分:2)

我同意G Mastros。

我会将它放入临时表中,然后运行replace命令来删除字符。

这将带您删除所有非数字字符:https://www.sqlservercentral.com/Forums/Topic470379-338-1.aspx

干杯