'DECLARE' 定义的变量使用有错 sql 为什么?
来源:百度知道 编辑:UC知道 时间:2024/09/24 22:05:22
create procedure selectDiscourseBySynthesis
(
@Author nvarchar(50),
@Title nvarchar(50),
@KeyWords nvarchar(50),
@Type nvarchar(50)
)
as
DECLARE @sql nvarchar(150)
set @sql='where 1=1'+' and '
if @Type<>null
set @sql=@sql+'Type='+@Type+' and '
if @Author<>null
set @sql=@sql+'Author ' +'like'+ '%'+@Author+'%'+' and '
if @Title<>null
set @sql=@sql+'Title ' +'like'+ '%'+@Title+'%'+' and '
if @KeyWords<>null
set @sql=@sql+'KeyWords ' +'like'+ '%'+@KeyWords+'%'+' and '
select Author,Title,KeyWords,Abstract,Type,FilePath FROM Discourse @sql
服务器: 消息 170,级别 15,状态 1,过程 selectDiscourseBySynthesis,行 19
第 19 行: '@sql' 附近有语法错误。
(
@Author nvarchar(50),
@Title nvarchar(50),
@KeyWords nvarchar(50),
@Type nvarchar(50)
)
as
DECLARE @sql nvarchar(150)
set @sql='where 1=1'+' and '
if @Type<>null
set @sql=@sql+'Type='+@Type+' and '
if @Author<>null
set @sql=@sql+'Author ' +'like'+ '%'+@Author+'%'+' and '
if @Title<>null
set @sql=@sql+'Title ' +'like'+ '%'+@Title+'%'+' and '
if @KeyWords<>null
set @sql=@sql+'KeyWords ' +'like'+ '%'+@KeyWords+'%'+' and '
select Author,Title,KeyWords,Abstract,Type,FilePath FROM Discourse @sql
服务器: 消息 170,级别 15,状态 1,过程 selectDiscourseBySynthesis,行 19
第 19 行: '@sql' 附近有语法错误。
create procedure selectDiscourseBySynthesis
(
@Author nvarchar(50),
@Title nvarchar(50),
@KeyWords nvarchar(50),
@Type nvarchar(50)
)
as
DECLARE @sql nvarchar(150)
set @sql='where 1=1'+' and '
if @Type<>null
set @sql=@sql+'Type='+@Type+' and '
if @Author<>null
set @sql=@sql+'Author ' +'like'+ '%'+@Author+'%'+' and '
if @Title<>null
set @sql=@sql+'Title ' +'like'+ '%'+@Title+'%'+' and '
if @KeyWords<>null
set @sql=@sql+'KeyWords ' +'like'+ '%'+@KeyWords+'%'+' and '
exec('select Author,Title,KeyWords,Abstract,Type,FilePath FROM Discourse'+ @sql)
--这样写试试看。
第19行这样写
exec("select Author,Title,KeyWords,Abstract,Type,FilePath FROM Discourse "+ @sql)
你有了AS 为啥还要DECL