CREATE PROC Book
(
@bookid nvarchar(20),
@bookname nvarchar(20),
@booktype nvarchar(20),
@author nvarchar(20),
@publisher nvarchar(20),
@isbn nvarchar(20)
)
AS
SET NOCOUNT ON
DECLARE @sql nvarchar(4000)
SET @sql='SELECT * FROM tbname WHERE 1=1'
+CASE WHEN @bookid IS NULL THEN '' ELSE ' AND bookid=@bookid' END
+CASE WHEN @bookname IS NULL THEN '' ELSE ' AND bookname=@bookname' END
+CASE WHEN @booktype IS NULL THEN '' ELSE ' AND booktype=@booktype' END
+CASE WHEN @author IS NULL THEN '' ELSE ' AND author=@author' END
+CASE WHEN @publisher IS NULL THEN '' ELSE ' AND publisher=@publisher' END
+CASE WHEN @isbn IS NULL THEN '' ELSE ' AND isbn=@isbn' END
EXEC sp_executesql @sql,N'
@bookid nvarchar(20),
@bookname nvarchar(20),
@booktype nvarchar(20),
@author nvarchar(20),
@publisher nvarchar(20),
@isbn nvarchar(20)
',@bookid,@bookname,@booktype,@author,@publisher,@isbn
GO