有没有其他方法可以使用存储过程获取表的所有行,除非我将过程传递给密钥?
如果是这样,我如何在SQL Server中编写代码?
答案 0 :(得分:4)
试试这个
CREATE PROCEDURE GetData(@key int = null)
BEGIN
SELECT * FROM Table WHERE (@Key Is NULL or id = @Key)
END
答案 1 :(得分:0)
您也可以使用COALESCE运算符:
CREATE PROCEDURE dbo.uspMySprocName(@Key INT = NULL)
AS
BEGIN
SELECT * FROM MyTable WHERE ID = COALESCE(@Key, ID);
END
答案 2 :(得分:0)
您可以使用if条件并进行2次查询
**syntax:**
if (@key is null ) then
begin
select * from table1 ;
end
else
being
select * from tabel1 where field1 = @key ;
end
endif
以下链接应该有帮助