请高手帮忙看一下,该存储过程哪里有问题
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'sp_selectcustomer'
AND type = 'P')
DROP PROCEDURE sp_selectcustomer
GO
CREATE PROCEDURE sp_selectcustomer
(@w1 varchar(20),@w2 varchar(20))
AS
declare @sqlstr varchar(200)
set @sqlstr='SELECT * from authors where 1=1'
if (not(@w1 is null))
set @sqlstr=@sqlstr + ' and phone like ' + @w1
if (not(@w2 is null))
set @sqlstr=@sqlstr + ' and item2 like ' + @w2
print @sqlstr
exec (@sqlstr)
GO
-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE sp_selectcustomer '408%',null
GO
问题点数:20、回复次数:5Top
1 楼shuiniu(飞扬的梦)(我是一头只吃西红柿的水牛)回复于 2003-12-01 14:02:12 得分 20
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'sp_selectcustomer'
AND type = 'P')
DROP PROCEDURE sp_selectcustomer
GO
CREATE PROCEDURE sp_selectcustomer
(@w1 varchar(20),@w2 varchar(20))
AS
declare @sqlstr varchar(200)
set @sqlstr='SELECT * from authors where 1=1'
if (not(@w1 is null))
set @sqlstr=@sqlstr + ' and phone like ''' + @w1 +'''' -->这儿
if (not(@w2 is null))
set @sqlstr=@sqlstr + ' and item2 like ''' + @w2 +'''' -->这儿
print @sqlstr
exec (@sqlstr)
GO
-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE sp_selectcustomer '408%',null
GOTop
2 楼Wings5427(Wings)回复于 2003-12-01 14:13:40 得分 0
还有其他的办法吗?谢谢Top
3 楼shuiniu(飞扬的梦)(我是一头只吃西红柿的水牛)回复于 2003-12-01 14:39:08 得分 0
楼主,想要什么结果?Top
4 楼shuiniu(飞扬的梦)(我是一头只吃西红柿的水牛)回复于 2003-12-01 14:40:26 得分 0
-- =============================================
-- Create procedure basic template
-- =============================================
-- creating the store procedure
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = N'sp_selectcustomer'
AND type = 'P')
DROP PROCEDURE sp_selectcustomer
GO
CREATE PROCEDURE sp_selectcustomer
(@w1 varchar(20),@w2 varchar(20))
AS
declare @sqlstr varchar(200)
set @sqlstr='SELECT * from authors where 1=1'
if (not(@w1 is null))
set @sqlstr=@sqlstr + ' and phone like ''' + @w1 +'%''' -->这儿
if (not(@w2 is null))
set @sqlstr=@sqlstr + ' and item2 like ''' + @w2 +'%''' -->这儿
print @sqlstr
exec (@sqlstr)
GO
-- =============================================
-- example to execute the store procedure
-- =============================================
EXECUTE sp_selectcustomer '408',null
GO
Top
5 楼Wings5427(Wings)回复于 2003-12-01 14:51:40 得分 0
我是不想用''''。有没有其他的方法实现?因为单引号的问题总是困扰着我。非常感谢Top




