SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[importDATA]
@filepath nvarchar(8)
as
begin
DECLARE @sql nvarchar(4000)
set @sql='
BULK INSERT Sales.dbo.test4
FROM '+@fileName +'
WITH (FIELDTERMINATOR ='','', ROWTERMINATOR= ''\n'');'
end
EXECUTE sp_executesql @sql
就是上面这个,@filepath是一个文本文档的路径,我的程序会获取目录里面的文本,
之后利用这个存储过程把数据都导入进去。现在这个语句冒失没问题,但是执行的时候提示
“:消息 102,级别 15,状态 1,第 3 行
'd:' 附近有语法错误。
消息 319,级别 15,状态 1,第 4 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。你看我确实是加了分号的
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[importDATA]
@filepath nvarchar(8)
as
begin
DECLARE @sql nvarchar(4000)
set @sql='
BULK INSERT Sales.dbo.test4
FROM '+@fileName +'
WITH (FIELDTERMINATOR ='','', ROWTERMINATOR= ''\n'');'
end
EXECUTE sp_executesql @sql
就是上面这个,@filepath是一个文本文档的路径,我的程序会获取目录里面的文本,
之后利用这个存储过程把数据都导入进去。现在这个语句冒失没问题,但是执行的时候提示
“:消息 102,级别 15,状态 1,第 3 行
'd:' 附近有语法错误。
消息 319,级别 15,状态 1,第 4 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。你看我确实是加了分号的
set @sql='
BULK INSERT Sales.dbo.test4 FROM '''+@fileName +''' WITH (FIELDTERMINATOR ='''+','+''', ROWTERMINATOR= '''+'\n'+''')';
end
print @sql就是这样就好了碰到逗号单独处理就好了。 print 果断犀利哈