Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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_Tsql - Fatal编程技术网

Sql 存储过程输入参数=";“全部”;

Sql 存储过程输入参数=";“全部”;,sql,sql-server,tsql,Sql,Sql Server,Tsql,将存储过程的输入参数设置为“ALL”意味着什么 例如: 其中desk=@desk或@desk=“ALL” All是内置的SQL关键字吗?比如,您可以在任何存储过程中简单地指定All,而不必调整表数据,并且它将简单地返回所有记录吗?不,它不是关键字。也就是说,如果用户提供单词'ALL'作为@desk的参数,则不应检查desk列。在英语中,该查询的内容为(向后读取): 如果用户提供了字符串“ALL”,那么他们希望看到所有的桌子。 否则,请查看他们要求的特定办公桌 对于一个可选参数来说,性能不是很好

将存储过程的输入参数设置为“ALL”意味着什么

例如:

其中desk=@desk或@desk=“ALL”

All
是内置的SQL关键字吗?比如,您可以在任何存储过程中简单地指定
All
,而不必调整表数据,并且它将简单地返回所有记录吗?

不,它不是关键字。也就是说,如果用户提供单词
'ALL'
作为
@desk
的参数,则不应检查
desk
列。在英语中,该查询的内容为(向后读取):

如果用户提供了字符串“ALL”,那么他们希望看到所有的桌子。
否则,请查看他们要求的特定办公桌

对于一个可选参数来说,性能不是很好,只需等到得到10个可选参数。请参阅一些背景资料:


(在这些情况下,您可以考虑<代码> null >代码>等同于单词<代码>‘所有’< /代码>它们都表示用户不想在该列上过滤。< /P> < P>不,它不是关键字。也就是说,如果用户提供单词

'ALL'
作为
@desk
的参数,则不应检查
desk
列。在英语中,该查询的内容为(向后读取):

如果用户提供了字符串“ALL”,那么他们希望看到所有的桌子。
否则,请查看他们要求的特定办公桌

对于一个可选参数来说,性能不是很好,只需等到得到10个可选参数。请参阅一些背景资料:

(在这些情况下,您可以考虑<代码> null >代码>等同于单词<代码>‘全部’/代码>它们都表示用户不想在该列上过滤。

< P>如亚伦所说,“ALL”不是关键字。

如果要在传递关键字“ALL”时返回所有记录,可以执行以下操作:

在哪里
1=案例
当@desk=“ALL”时,则为1
当desk=@desk然后是1
其他0
结束
就像亚伦说的,“ALL”不是关键词

如果要在传递关键字“ALL”时返回所有记录,可以执行以下操作:

在哪里
1=案例
当@desk=“ALL”时,则为1
当desk=@desk然后是1
其他0
结束

是,
ALL
是一个SQL关键字。它可以在以下环境中使用:

where x >= all (select y from t)
但是,
“ALL”
不是SQL关键字。SQL Server在此上下文中接受它的唯一方法是将它作为表中的一列

我怀疑情况并非如此。我猜你真正想要的是一根弦:

请注意,单引号与双引号有很大不同

在此上下文中,它只是一个字符串和一个约定,任何编写此代码的人都可以获得所有内容。这绝对不是标准。事实上,尽管没有标准,
NULL
通常是首选:

WHERE desk = @desk OR @desk IS NULL
NULL
'ALL'有两个优点:

  • 它适用于所有数据类型
  • 它不能与实际值混淆,因为
    =
    无论如何都不能与
    NULL
    一起使用

如果您还想测试
NULL
值,事情会变得有点棘手,但这不是您在这里问的问题。

是的,
ALL
是一个SQL关键字。它可以在以下环境中使用:

where x >= all (select y from t)
但是,
“ALL”
不是SQL关键字。SQL Server在此上下文中接受它的唯一方法是将它作为表中的一列

我怀疑情况并非如此。我猜你真正想要的是一根弦:

请注意,单引号与双引号有很大不同

在此上下文中,它只是一个字符串和一个约定,任何编写此代码的人都可以获得所有内容。这绝对不是标准。事实上,尽管没有标准,
NULL
通常是首选:

WHERE desk = @desk OR @desk IS NULL
NULL
'ALL'有两个优点:

  • 它适用于所有数据类型
  • 它不能与实际值混淆,因为
    =
    无论如何都不能与
    NULL
    一起使用
如果您还想测试
NULL
值,事情会变得有点棘手,但这不是您在这里提出的问题