日期:2014-05-17  浏览次数:20378 次

MSSQL语句组装,走过路过别错过,帮顶加双倍人品吖
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 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

你看我确实是加了分号的

------解决方案--------------------
是不是字符串那要加单引号的原因
------解决方案--------------------
FROM '''+@fileName +'''忘记拼接单引号了
------解决方案--------------------
先print出来看看能不能执行再exec嘛