错误“'@ part1'sql服务器附近的语法不正确

时间:2019-07-28 18:49:19

标签: sql-server stored-procedures

我正在尝试创建动态存储过程。 这是初始代码

Declare @sqlstrsel as nvarchar(max) ;
Declare @cols as nvarchar(max) ;
Declare @tables as nvarchar(max) ;
Declare @condt as nvarchar(max) ;
Set @cols='*'
Set @tables='products'
Set @condt=''
Set @sqlstrsel = 'select ' + @cols+ 'from ' +@table +@condt
Exec (@sqlstrsel)

此代码可以正常工作,但是当更改为如下所示的存储过程时

Alter proc selectT

@cols  nvarchar(max) ;
@tables nvarchar(max) ;
@condt nvarchar(max) ;
As
Begin 
Declare @sqlstrsel as nvarchar(max) ;
Set @sqlstrsel = 'select ' + @cols+ 'from ' +@table +@condt
Exec (@sqlstrsel);
End

当我在新查询中执行此proc时,通过提供参数

Set @par1='*'
Set @par2= 'products'
Set @par3 =''
Exec selectT(@par1,@par2,@par3)

我遇到两个错误 未提供过程或函数“ selectt”的期望参数“ @cols”, 和 '@ par1'附近的语法不正确 预先声明参数1至参数3。

0 个答案:

没有答案