SQL Server中的计算列

零、码仙励志

人最大的对手,往往不是别人,而是自己的懒惰。别指望撞大运,运气不可能永远在你身上,任何时候都要靠本事吃饭。你必须拼尽全力,才有资格说自己的运气不好

一、建库和建表

create database scort
use scort
create table emp
(
	empno int primary key,
	ename nvarchar(10),
	job nvarchar(10),
	sal int
)
insert into emp values (7369,'smith','clerk',800);
insert into emp values (7499,'allen','salesman',1600);
insert into emp values (7521,'ward','salesman',1250);

二、查询

select * from emp
-- * 表示全部
--from emp 表示从emp表中查询

select empno,ename from emp
--只查询empno,ename这两列

select ename,sal*12 as "年薪" from emp
--as可以省略,为了可移植性,尽量写成 "年薪",不要写 年薪 或者 '年薪'

select ename,sal as "月薪",sal*12 "年薪",job "工作" from emp

select 666 from emp
--OK

select 666
--OK

本篇博客来自于郝斌老师视频教程的总结以及笔记的整理,仅供学习交流,切勿用于商业用途,如有侵权,请联系博主删除,博主QQ:194760901 

### 如何在SQL Server中修改表的计算定义或属性 在SQL Server中,计算(Computed Column)是基于其他的值通过表达式生成的。由于计算的值是由公式动态生成的,因此直接修改计算的定义需要遵循特定的步骤[^1]。以下是对如何修改计算公式或属性的详细说明: #### 删除并重新创建计算 SQL Server 不支持直接修改已存在的计算定义。如果需要更改计算的公式或属性,必须先删除该,然后根据新的定义重新创建它[^2]。 以下是实现此操作的具体代码示例: ```sql -- 假设表名为 MyTable,计算名为 ComputedColumn ALTER TABLE MyTable DROP COLUMN ComputedColumn; -- 删除计算 -- 根据新公式重新创建计算 ALTER TABLE MyTable ADD ComputedColumn AS (ColumnA + ColumnB); ``` #### 修改计算的存储属性 如果需要将计算从非持久化(Not Persisted)更改为持久化(Persisted),或者反之,则需要按照上述方法删除并重新创建,并在创建时指定 `PERSISTED` 属性[^3]。 例如: ```sql -- 创建一个持久化的计算 ALTER TABLE MyTable ADD ComputedColumn AS (ColumnA + ColumnB) PERSISTED; ``` #### 注意事项 - 如果计算被其他对象(如视图、索引或外键约束)引用,则必须先删除这些依赖对象,才能删除计算。 - 确保在删除和重新创建计算之前备份数据,以防止意外丢失重要信息[^4]。 ### 示例代码 以下是一个完整的示例,展示如何修改计算的定义及其存储属性: ```sql -- 假设初始表结构如下: CREATE TABLE MyTable ( ColumnA INT, ColumnB INT, ComputedColumn AS (ColumnA + ColumnB) ); -- 删除现有的计算 ALTER TABLE MyTable DROP COLUMN ComputedColumn; -- 重新创建计算,并将其设置为持久化 ALTER TABLE MyTable ADD ComputedColumn AS (ColumnA * ColumnB) PERSISTED; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值