视图
额。。不要笑话我。
我现在才知道视图是可以进行UPDATE的,那当然连DELETE也可以了。汗一个。
这里呢,强调两个后缀。
with check option
with Read only
Create view Materials_view as select * from Materials where MaterialCode like ' 9% ' with check option Go
噢。。仿佛上面是SQL Server的。。Oracle一样啦.
更新的时候会这样提示的。 Read only 也差不多就不罗列了,貌似SQL SERVER没有啊。以后发现了在补上。
Update Materials_view set MaterialCode = ' 100000002823 ' where MaterialID = ' 900000002823 ' -- Waring 消息 550 ,级别 16 ,状态 1 ,第 2 行 试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION ,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。 语句已终止。
序列
觉得SQL Server 和Oracle 的关于序列的问题,都各有所长吧。
优缺点都是个人观点。
共同点:可以定义起始位置和步长。
Oracle 优点:可以定义是否循环,那么就可以定义最大值,最小值。 一个表里可以有多个序列字段。
SQL Server 优点:简单,不用显示的Create创建,可以在表里直接增加 Identity( 起始值 , 步长值 )即可。
// SQL Server Create table #temtable ( RowID int identity ( 1 , 2 ) ) // Oracle Create sequence mysequence increment by 2 start with 1 -- Notice Oracle序列需要用 NextVal来初始化。。
同义词
比较明显的同义词是来自Oracle,大家经常用到dual,实际上是 sys.dual,同义词的概念就是将一个名字用成 用户名.表名称这样的。
当然了,可能还有(架构或者模式)这样的概念,应该也可以。
Create synonym MaterialCom for scott.Materialcomlinks