我正在尝试在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行附近或表名以外的任何地方?
答案 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