请教高手,查询字段加减等运算是否影响查询性能? 发生计算了 当然没有 select 字段1,字段2,字段3 from 表快了 如果在索引列上进行计算 那就用不到索引了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不在WHERE,JOIN里,这种影响可以忽略. 计算列由可以使用同一表中的其他列的表达式计算得来。该表达式可以是非计算列的列名、常量、函数、变量,也可以是用一个或多个运算符连接的这些元素的任意组合。表达式不能为子查询。 除非另行指定,否则计算列是未实际存储在表中的虚拟列。每当在查询中引用计算列时,都将重新计算它们的值。SQL Server 2005 Database Engine 在 CREATE TABLE 和 ALTER TABLE 语句中使用 PERSISTED 关键字来将计算列实际存储在表中。如果在计算列的计算更改时涉及任何列,将更新计算列的值。通过将计算列标记为 PERSISTED,可以对具有确定性但不精确的计算列创建索引。另外,如果计算列引用 CLR 函数,则数据库引擎 不能验证该函数是否真正具有确定性。在这种情况下,计算列必须为 PERSISTED,以便可对其创建索引计算列可用于选择列表、WHERE 子句、ORDER BY 子句或任何可使用正则表达式的其他位置,但下列情况除外: 用作 CHECK、FOREIGN KEY 或 NOT NULL 约束的计算列必须标记为 PERSISTED。如果计算列的值由具有确定性的表达式定义,并且索引列中允许使用计算结果的数据类型,则可将该列用作索引中的键列,或者用作 PRIMARY KEY 或 UNIQUE 约束的一部分。 例如,如果表中含有整数列 a 和 b,则可以对计算列 a + b 创建索引,但不能对计算列 a + DATEPART(dd, GETDATE()) 创建索引,因为在后续调用中,其值可能发生改变。 计算列不能作为 INSERT 或 UPDATE 语句的目标。 数据库引擎 基于使用的表达式自动确定计算列的为空性。即使只有非空列,大多数表达式的结果也“认为”可为空值,因为下溢或溢出生成的结果也可能为空。使用带 AllowsNull 属性的 COLUMNPROPERTY 函数可查明表中任何计算列的为空性。可以将可为空值的表达式转换为非空表达式,方法是指定 ISNULL(check_expression, constant),其中,constant 是替换任意空结果的非空值。 这句话中 需要计算的列为什么不出现小数 请教一个sql SQL 2000 能否直接把全部数据库的内容(表,函数,存储过程 等)直接下载到2005 问个简单的问题,要准确答案: 同时安装MY SQL 与 sql server可以吗? 一个菜鸟有关触发器的问题? 在线跪求一个SQL问题,感谢 怎样Update 在计划任务中编写t_sql语句的字符长度限制问题! 我也遇到了同样的问题啊,我的服务器是独立的,我在自己的客户机上装了SQL的客户端,可是怎么也连不上提示连接错误。 如何判断一个日期与当前日期月份相同? 架构? SLQ 列生成自动增加ID,第一行的值加上一行的值????
计算列不能作为 INSERT 或 UPDATE 语句的目标。
数据库引擎 基于使用的表达式自动确定计算列的为空性。即使只有非空列,大多数表达式的结果也“认为”可为空值,因为下溢或溢出生成的结果也可能为空。使用带 AllowsNull 属性的 COLUMNPROPERTY 函数可查明表中任何计算列的为空性。可以将可为空值的表达式转换为非空表达式,方法是指定 ISNULL(check_expression, constant),其中,constant 是替换任意空结果的非空值。