2017-04-13 72 views
0

当试图运行一个存储过程,我得到以下错误:错误试图执行存储过程时

Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near '@CSVPath'. 

我试图使用执行了下列文件:

EXEC dbo.ProcessData @CSVPath = 'D:\Data.csv' 

我存储过程启动是这样的:

ALTER PROCEDURE [dbo].[ProcessDataData] 
    @CSVPath varchar(MAX) --Path to CSV containing data. 
AS 
BEGIN 
    {query} 
END 

我不知道我在做什么错误,当传递参数值。

谢谢。

+0

我没有看到任何问题,你能提供一个repro为我们测试 – TheGameiswar

+0

我投票关闭这个问题,因为:寻求调试帮助的问题(“为什么不是这个代码工作?”)必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。 – TheGameiswar

回答

0

假设你的PROC名称的字数据只有一次,我刚才这个管理成功:

create PROCEDURE [dbo].[ProcessData] 
    @CSVPath varchar(MAX) --Path to CSV containing data. AS BEGIN 
    select @CSVPath END 

EXEC dbo.ProcessData @CSVPath = 'D:\Data.csv' 

输出: d:\ Data.csv

+0

如果是这样,错误信息会有所不同 – TheGameiswar

+0

正确。这本来是程序没有找到。你的程序实际上叫什么? – GandRalph

+0

这也适用(无@):EXEC dbo.ProcessData'D:\ Data.csv' – GandRalph

0

与存储过程的名称和使用先确认同一SP名称,以便

您正在执行错误的SP低于查询该宏将会

使用U不会得到这样的错误升执行

EXEC dbo.ProcessDataData @CSVPath = 'D:\Data.csv' 
0

这是工作......你的程序名称为[DBO]。[ProcessDataData]你执行EXEC dbo.ProcessData ....请这样执行EXEC dbo.ProcessDataData其MEE工作。 ..

ALTER PROCEDURE [dbo].[ProcessDataData] 
    @CSVPath varchar(MAX) --Path to CSV containing data. 
AS 
BEGIN 
-- Query to execute data 

END 

EXEC dbo.ProcessDataData @CSVPath = 'D:\Data.csv' 

希望它的工作!

快乐编码!

0

试试吧,可能适合你;

EXEC dbo.ProcessData 'D:\Data.csv' 

它会自动将您的数据映射到parameter: @CSVPath。否则,可能是您的查询中存在问题。如果问题仍然存在,分享您的完整StoredProcedure为更好的判断和解决方案。