CREATE PROCEDURE sp_GetTypeList
@fdClass varchar(4),
@fdTypeNo varchar(10),
@condition varchar(200)
AS
Begin --加上Begin
DECLARE @selectText varchar(100)
SET @selectText='SELECT * FROM tbType WHERE fdClass='+@fdClass --改为fdClass='+@fdClass IF LEN(@fdTypeNo)>0
BEGIN
SET @selectText = @selectText + 'AND fdTypeNo=' + @fdTypeNo
END --去掉BEGIN IF LEN(@condition) > 0
BEGIN
SET @selectText = @selectText + 'AND' + @condition
END --去掉BEGIN SET @selectText = @selectText + 'ORDER BY fdOrderNo' EXEC(@selectText)
End --加上End
GO
@fdClass varchar(4),
@fdTypeNo varchar(10),
@condition varchar(200)
AS
Begin --加上Begin
DECLARE @selectText varchar(100)
SET @selectText='SELECT * FROM tbType WHERE fdClass='+@fdClass --改为fdClass='+@fdClass IF LEN(@fdTypeNo)>0
BEGIN
SET @selectText = @selectText + 'AND fdTypeNo=' + @fdTypeNo
END --去掉BEGIN IF LEN(@condition) > 0
BEGIN
SET @selectText = @selectText + 'AND' + @condition
END --去掉BEGIN SET @selectText = @selectText + 'ORDER BY fdOrderNo' EXEC(@selectText)
End --加上End
GO
还可以简写一下
CREATE PROCEDURE sp_GetTypeList
@fdClass varchar(4),
@fdTypeNo varchar(10),
@condition varchar(200)
AS
Begin --加上Begin
DECLARE @selectText varchar(100)
SET @selectText='SELECT * FROM tbType WHERE fdClass='+@fdClass --改为fdClass='+@fdClass IF LEN(@fdTypeNo)>0 --去掉Begin End
SET @selectText = @selectText + 'AND fdTypeNo=' + @fdTypeNo IF LEN(@condition) > 0 --去掉Begin End
SET @selectText = @selectText + 'AND' + @condition SET @selectText = @selectText + 'ORDER BY fdOrderNo' EXEC(@selectText)
End --加上End
GO
这里会提示列名"LV"无效,在SQL存储过程里应该怎么给字符串中加单引号啊!
改为SET @selectText='SELECT * FROM tbType WHERE fdClass='''+@fdClass+''''