|
74
|
| TheEmirOfGroofunkistan · 技术社区 · 18 年前 |
|
|
1
46
不,但您可以创建一个函数并在其中对其进行硬编码并使用它。 下面是一个例子:
|
|
|
2
17
我对缺少常量的解决方法是向优化器提供有关值的提示。
这会告诉查询编译器在创建执行计划时将变量视为常量。缺点是您必须定义值两次。 |
|
|
3
14
|
|
|
4
9
不,但应该使用好的旧命名约定。
|
|
|
5
7
T-SQL中没有对常量的内置支持。您可以使用sqlmenace的方法来模拟它(尽管您永远无法确定是否有其他人重写了函数以返回其他值),或者可能编写了一个包含常量的表,
as suggested over here
. 可能编写一个触发器,将对
|
|
|
6
6
在使用SQL函数之前,请运行以下脚本以查看性能差异:
|
|
7
5
如果您对获取变量值的最佳执行计划感兴趣,可以使用动态SQL代码。它使变量变为常量。
|
|
|
8
5
对于枚举或简单常量,只有一行的视图具有很好的性能和编译时检查/依赖项跟踪(因为它是一个列名) 查看Jared Ko的博客帖子 https://blogs.msdn.microsoft.com/sql_server_appendix_z/2013/09/16/sql-server-variables-parameters-or-literals-or-constants/ 创建视图
使用视图
|
|
|
9
2
好吧,让我们看看 常量是在编译时已知的不可变值,在程序的生命周期内不会改变。 这意味着在SQL Server中永远不能有常量
值刚刚更改 |
|
|
10
1
由于没有对常量的内置支持,所以我的解决方案非常简单。 因为这是不支持的:
我只要把它转换成
显然,这依赖于整体(没有尾随空格和注释的值)是唯一的。可以通过全局搜索和替换进行更改。 |
|
|
11
0
数据库文献中没有“创建常量”这样的东西。常量按原样存在,通常称为值。可以声明一个变量并为其赋值(常量)。从学术角度来看:
这里@two是一个变量,2是一个值/常量。 |
|
|
12
-1
最好的答案是根据需求从sqlmesance中得到,如果这是为了创建一个临时常量,以便在脚本中使用,即跨多个go语句/批处理。 只需在tempdb中创建过程,就不会对目标数据库产生影响。 其中一个实际的例子是数据库创建脚本,它在包含逻辑模式版本的脚本末尾写入控制值。在文件的顶部有一些带有更改历史等的注释…但实际上,大多数开发人员将忘记向下滚动并更新文件底部的模式版本。 使用上面的代码,可以在数据库脚本(从SSMS的生成脚本功能复制)创建数据库之前在顶部定义一个可见的模式版本常量,但在末尾使用。这正是开发人员面对变更历史和其他评论时的情况,因此他们很可能会更新它。 例如:
|
|
|
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 3 年前 |
|
|
Nick Fleetwood · 调度语法的LINQ查询 4 年前 |
|
|
Mateen Bagheri · 选择表的计数并选择其自身 4 年前 |
|
Java · 使用交叉应用同时显示两列 4 年前 |