Create PROCEDURE TEST @Where NvarChar(100), @Value NvarChar(100) As declare @str varchar(2000) set @str = 'Select * From Table' + @Where +' '+@Value exec @str return go Exec TEST 'WHERE A=','TEST12345'--这样改
--按楼主的调用方法,应该这样改:Create PROCEDURE TEST @Where NvarChar(100) , @Value NvarChar(100) As exec('Select * From Table '+@Where +''''+@Value+'''') go--调用 Exec TEST 'WHERE A=','TEST12345'
因为 @Value 传递的是字符,所以要加上'
--或者这样,跳过'的处理问题Create PROCEDURE TEST @Where NvarChar(100) , @Value NvarChar(100) As declare @s nvarchar(4000) set @s='Select * From Table '+@Where +'@Value' exec sp_executesql @s,N'@Value NvarChar(100)',@Value go--调用 Exec TEST 'WHERE A=','TEST12345'
Create PROCEDURE TEST @Where NvarChar(100) @Value NvarChar(100) As exec('Select * From Table '+@Where +' '+@Value')... exec TEST @Where='where a=',@Value='xxxx'
@Where NvarChar(100),
@Value NvarChar(100)
As
declare @str varchar(2000)
set @str = 'Select * From Table' + @Where +' '+@Value
exec @str
return
go
Exec TEST 'WHERE A=','TEST12345'--这样改
@Where NvarChar(100) ,
@Value NvarChar(100)
As
exec('Select * From Table '+@Where +''''+@Value+'''')
go--调用
Exec TEST 'WHERE A=','TEST12345'
@Where NvarChar(100) ,
@Value NvarChar(100)
As
declare @s nvarchar(4000)
set @s='Select * From Table '+@Where +'@Value'
exec sp_executesql @s,N'@Value NvarChar(100)',@Value
go--调用
Exec TEST 'WHERE A=','TEST12345'
@Where NvarChar(100)
@Value NvarChar(100)
As
exec('Select * From Table '+@Where +' '+@Value')... exec TEST @Where='where a=',@Value='xxxx'