set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
gocreate PROCEDURE [dbo].[Proc_GetMaeesage]
(
@id nvarchar(50)=null,
@restoers nvarchar(50)=null
)
AS
declare @sql varchar(200)set @sql='select * from restor where 1=1 '
if(@restoers is not null)
set @sql=@sql + ' and restoer= ' + @restoersif(@id is not null)
set @sql=@sql + ' and restorid= ' + @id exec(@sql)这是一个参数可有可无的存储过程,编译通过,exec [dbo].[Proc_GetMaeesage] @id=1 我写这一句话没有什么问题,可以查询出数据,exec Proc_GetMaeesage @restoers='swd'我写这一句话的时候,就报错了,错误是这样的:消息 207,级别 16,状态 1,第 1 行
列名 'swd' 无效。各位高手帮忙解决下,
set QUOTED_IDENTIFIER ON
gocreate PROCEDURE [dbo].[Proc_GetMaeesage]
(
@id nvarchar(50)=null,
@restoers nvarchar(50)=null
)
AS
declare @sql varchar(200)set @sql='select * from restor where 1=1 '
if(@restoers is not null)
set @sql=@sql + ' and restoer= ' + @restoersif(@id is not null)
set @sql=@sql + ' and restorid= ' + @id exec(@sql)这是一个参数可有可无的存储过程,编译通过,exec [dbo].[Proc_GetMaeesage] @id=1 我写这一句话没有什么问题,可以查询出数据,exec Proc_GetMaeesage @restoers='swd'我写这一句话的时候,就报错了,错误是这样的:消息 207,级别 16,状态 1,第 1 行
列名 'swd' 无效。各位高手帮忙解决下,
set QUOTED_IDENTIFIER ON
go
create PROCEDURE [dbo].[Proc_GetMaeesage]
(
@id nvarchar(50)=null,
@restoers nvarchar(50)=null
)
AS
declare @sql varchar(200)set @sql='select * from restor where 1=1 '
if(@restoers is not null)
set @sql=@sql + ' and restoer= ''' + @restoers+''''if(@id is not null)
set @sql=@sql + ' and restorid= ' + @idexec(@sql)
(
@id nvarchar(50)=null,
@restoers nvarchar(50)=null
)
AS
declare @sql varchar(200) set @sql='select * from restor where 1=1 '
if(@restoers is not null)
set @sql=@sql + ' and restoer= ''' + @restoers +'''if(@id is not null)
set @sql=@sql + ' and restorid= ' + @id exec(@sql) GO--说明:@restoers 是字符型的,需要用''' '''括起来才能被exec识别
(
@id nvarchar(50)=null,
@restoers nvarchar(50)=null
)
AS
declare @sql varchar(200) set @sql='select * from restor where 1=1 '
if(@restoers is not null)
set @sql=@sql + ' and restoer= ''' + @restoers +''''if(@id is not null)
set @sql=@sql + ' and restorid= ' + @id exec(@sql) GO刚才少打了一个'