我正在将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?
答案 0 :(得分:2)
我同意G Mastros。
我会将它放入临时表中,然后运行replace命令来删除字符。
这将带您删除所有非数字字符:https://www.sqlservercentral.com/Forums/Topic470379-338-1.aspx
干杯