Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 除非我传递了一个键,否则显示表的所有记录_Sql_Sql Server - Fatal编程技术网

Sql 除非我传递了一个键,否则显示表的所有记录

Sql 除非我传递了一个键,否则显示表的所有记录,sql,sql-server,Sql,Sql Server,是否有其他方法可以使用存储过程获取表的所有行,除非我向该过程传递一个键 如果是这样,如何在SQL Server中编写代码?试试这个 CREATE PROCEDURE GetData(@key int = null) BEGIN SELECT * FROM Table WHERE (@Key Is NULL or id = @Key) END 也可以使用“合并”操作符: CREATE PROCEDURE dbo.uspMySprocName(@Key INT = NULL) AS BEGIN

是否有其他方法可以使用存储过程获取表的所有行,除非我向该过程传递一个键

如果是这样,如何在SQL Server中编写代码?

试试这个

CREATE PROCEDURE GetData(@key int = null)
BEGIN
  SELECT * FROM Table WHERE (@Key Is NULL or id = @Key)
END

也可以使用“合并”操作符:

CREATE PROCEDURE dbo.uspMySprocName(@Key INT = NULL)
AS
BEGIN
    SELECT * FROM MyTable WHERE ID = COALESCE(@Key, ID);
END

您可以使用if条件并有2个查询

**syntax:**  
    if (@key is null ) then  
        begin  
            select * from table1 ;  
        end  
    else  
        being  
            select * from tabel1 where field1 = @key ;  
        end  
    endif
下面的链接应该会有所帮助