在我的.net 2.0应用程序中,我想将所有内联查询转换为sql存储过程。
我有像
这样的查询StringBuilder query = new StringBuilder();
**query.AppendLine("Select * from xxx Where 1 =1");**
if(Id != 0)
query.AppendLine("And Id = @Id");
if(Nemae != null)
query.AppendLine("And Name = @Name");
我怎么能在sql存储过程中写这个?
我需要重复吗?
答案 0 :(得分:1)
您可以将参数传递给存储过程并使用它们:
CREATE PROC spTest
(
@name varchar(30)=NULL
, @id int=NULL
)
AS
BEGIN
SELECT * FROM TABLE_NAME
WHERE (@name IS NULL OR name = @name)
AND (@id IS NULL OR id = @id)
END
答案 1 :(得分:0)
可能是这样的:
SELECT * FROM TABLEA
WHERE (@PARAM1 = 0 OR ID=@PARAM1) AND (@Name = NULL OR COLUMN2=Name)