'附近的语法不正确。'

时间:2015-02-02 14:56:08

标签: sql sql-server sql-server-2008

我正在尝试在SQL Server 2008中运行存储过程。在创建过程之后,我选择了"脚本表AS EXECUTE"选项(在输入SELECT查询后)对于字段名称)出现:

DECLARE @RC int
DECLARE @tablename varchar(50)
DECLARE @field1 varchar(25)
DECLARE @field2 varchar(25)

SELECT @tablename = '[databasename].[dbo].[tablename]'
SELECT @field1 = 'name'
SELECT @field2 = 'amount'

EXECUTE @RC = [databasename].[dbo].[procedurename] 
   @tablename
  ,@field1
  ,@field2
GO

然后我收到以下错误:

  

Msg 102,Level 15,State 1,Line 1
  '附近的语法不正确。'

但似乎没有任何'。'在第1行附近或表名以外的任何地方?

1 个答案:

答案 0 :(得分:0)

该代码没有任何问题。正如评论中所述,您的存储过程出了问题。获取过程的源代码,使用create / alter删除行和输入参数,直到第一次开始。之后删除最后一个END。替换代码中的所有参数并将其作为普通TSQL语句执行。在这种情况下,您可以轻松找到失败的位置。

为确保您的代码正常运行,请执行以下脚本:

CREATE PROCEDURE [procedurename]
@tablename VARCHAR(1000)
  ,@field1 VARCHAR(1000)
  ,@field2 VARCHAR(1000)
AS  
BEGIN
SELECT 1
END   
GO

DECLARE @RC int
DECLARE @tablename varchar(50)
DECLARE @field1 varchar(25)
DECLARE @field2 varchar(25)

SELECT @tablename = '[databasename].[dbo].[tablename]'
SELECT @field1 = 'name'
SELECT @field2 = 'amount'



EXECUTE @RC = [dbo].[procedurename] 
   @tablename
  ,@field1
  ,@field2

GO
DROP PROCEDURE [procedurename]
GO