触发器这个东西这是第一次真正接触,是由于用视图实现了分片透明性以后还想要实现操做透明性。闲话很少说,先上一段代码:html
create trigger rtuwell_trigger_insteadof_insert on RTU_WELL instead of insert as declare @RTUID int, @WELLID int; select @RTUID=RTU_ID,@WELLID=WELL_ID from inserted; if(@RTUID>6) insert into rtuwell_2 values(@RTUID,@WELLID); else insert into rtuwell_1 values(@RTUID,@WELLID); go
最重要的部分是as
和go
中间的部分,首先须要定义变量,这个定义的变量就是你想要触发器操做的全部变量,个人这个表里面只有两列,一列是RTUID,一列是WELLID,这两个都是int型的。 sql
而后由于这个是instead of insert
因此须要把要操做的内容从inserted
黑洞中拉出来,而后再进行处理。固然若是是instead of delete
那么就是deleted
黑洞了。 数据库
最后附上原文连接(这里面有详细的内容):
SQL Server 触发器服务器
以前就想把这个记录到博客里面,可是以为之后用的机会很少,就没记录,可是今天课题组的同志须要用个人电脑当数据库服务器,须要我导入数据库,因此又用到了,我就记录下来吧。(摘自百度知道)url
sqlcmd命令行
sqlcmd -S "localhost\SQLEXPRESS" USE [master] GO CREATE DATABASE [TEST] ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\TEST.mdf' ), ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\TEST_log.ldf' ) FOR ATTACH ; GO