如何让一个字段的默认值等于另一个字段的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让一个字段的默认值等于另一个字段的值相关的知识,希望对你有一定的参考价值。
--完整的示例--sqlserver建表表时设置字段的默认值createtable表(idint,namevarchar(10)default'张三',ageint)--添加字段时设置字段的默认值altertable表addsexchar(2)default'男'--为表中现有的字段设置默认值altertable表addconstraintDF_age_表default(20)foragego--插入一条记录验证insert表(id)values(1)select*from表go约束主要有一下几种:NOTNULL:用于控制字段的内容一定不能为空(NULL)。 UNIQUE:控件字段内容不能重复,一个表允许有多个Unique约束。PRIMARYKEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。FOREIGNKEY: FOREIGNKEY约束用于预防破坏表之间连接的动作,FOREIGNKEY约束2.也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。CHECK:用于控制字段的值范围。DEFAULT:用于设置新记录的默认值。notnull:用于控制字段的内容一定不能为空(NULL)。 用法:CreatetableMyTable ( idvarchar(32)notnull, namevarchar(32) ) PrimaryKey:也是用于控件字段内容不能重复,但它在一个表只允许出现一个。 在SqlServer、Orcale、MSAccess支持的添加PrimaryKey语法: CreatetablemyTB1 ( idnvarchar(32)notnullprimarykey, namenvarchar(32) ) 参考技术A 用两个查询很容易实现,第一个查询汇总借方金额和贷方金额,第二个查询以第一个为基础直接相减就行了。 参考技术B 你的代码有以下几个问题:1. 判断是否是NULL应使用is,而不是=
2. 修改字段值应使用UPDATE语句
故你的代码修改成下面这样,试试看
create trigger tigger1 on UserInfo
for insert
as
declare @i1 as int --这里类型实际应修改为a的类型
select @i1 = UserInfo.a
from UserInfo join inserted on UserInfo.主键 = inserted.主键
if ( @i1 is null)
update UserInfo
set a = UserInfo.b
from UserInfo join inserted on UserInfo.主键 = inserted.主键本回答被提问者采纳
mysql如何查询某字段里两个值相加结果等于已知道的一个数字
比如我只知道一个结果1000,怎么查询出a表中test字段里随机的两个值相加等于1000,然后获取这两个值的id。主要的条件就是这两个值相加要等于1000。。。哪位牛人知道怎么写。
参考技术A 新建符合条件的查询,然后复制它的sql语句。我猜的。本回答被提问者采纳以上是关于如何让一个字段的默认值等于另一个字段的值的主要内容,如果未能解决你的问题,请参考以下文章
SQL中同一个表中,一个字段里面的值等于 另外一个表里面的值 例如表ABC 字段D里面的值如何更新到字段E里面