求助:一个触发器的问题…… create trigger tr_insert on 表for insertasupdate 表 set 性别='男'where 性别=1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的这个目的 在Oracle里能够方便地在Before Insert类的触发器里用修改:new记录的方法轻松实现可如何在SQLServer里做同样的功能呢? create trigger tr_insert on 表for insertasupdate 表 set 性别='男' from 表 a,inserted b where a.唯一标识=b.唯一标识 未定主键或者没有具有唯一约束的列,这样的操作几乎不可能对于那个转换可以用查询来解决select 性别=case when 性别=1 then '男' else '女' end from [tablename] 感谢大家了说白了,我举的这个例子 问题并不是很难解决,其实我只是想知道如何在未定义唯一性列的表的Insert触发器里 修改 刚刚插入的数据的方法 zjcxc(邹建) ( ) 信誉:355 2004-08-09 21:56:00 得分: 0 你的表中根本没有主键,所以无法定位当前操作影响的记录=============================这位五星级超级大侠士都发话 无法定位 了,看来是真的没办法了。谢谢各位了。唉,发现了,SQL的功能比起Oracle来 的确是差得太远啊! 楼上的说的话太让人伤心了吧。oracle也感觉到了sqlserver的竞争力,也放下那高高的架子了。oracle有个rowid的概念,这个在sqlserver中也是很容易实现的,加一个不用自己去管理的自增列也容易,并且比oracle在行更直观,oracle的高级并不体现在这儿。我觉得不接触企业级数据库的应用,是不能感觉oracle的强大的。还有一个,ms也认可,oracle的存储过程比sqlserver的功能要强大的多 真是不好意思,伤了楼上大哥的心了我也是随便说说而已,我也知道,论方便性,SQL是更优一些的。我没怎么用过SQLServer,好多东西都是现学的。我也不是很精通Oracle,仅凭我的感觉也说明不了什么。但我真的是感觉写存储过程或触发器时,SqlServer不及Oracle方便啊,呵呵还有一个感觉:SQLServer的语法,更像VBasic的语法;而Oracle的语法则有点像Java不知道这个感觉对不对啊 这个问题的正确解法(相必漏主高人看得懂,不必解释了):create trigger tr_insert on 表instead of insertasinsert 表 (...,性别,...)select ...,case when 性别='1' then '男' ... end,...from insertedgo tx1icenhe(冒牌马可 V0.2)试过了,可行!谢!! tx1icenhe(冒牌马可 V0.2) ( ) 信誉:100 2004-08-09 22:20:00 得分: 0 用惯一个,再用这个的思路去用第二个,那什么样的第二个都是不如第一个。-----------------------------你的话我明白,呵呵,比较有道理……:) 求高手教初学者触发器 SqlServer2005 Row_Number 的奇怪问题 跪求解决方法 計算字段如何用SQL語句修改? 求一SQL语句!!!!!!!!!!!!!!快,,见着有分! 头疼:"多步 OLE DB 操作产生错误","未能创建可接受的游标" Sql2000数据库“搬家”问题,请教高的呀!为何“主人”不一样了 这个SQL语句怎么写 很简单的问题,为什么我写不对! sqlserver2000最多能容多少个并发用户? 谁能给我说说吗 谢谢 SQL语句问题
for insert
as
update 表 set 性别='男'
from 表 a,inserted b
where a.唯一标识=b.唯一标识
对于那个转换可以用查询来解决
select 性别=case when 性别=1 then '男' else '女' end from [tablename]
说白了,我举的这个例子 问题并不是很难解决,其实我只是想知道如何在未定义唯一性列的表的Insert触发器里 修改 刚刚插入的数据的方法
你的表中根本没有主键,所以无法定位当前操作影响的记录
=============================这位五星级超级大侠士都发话 无法定位 了,看来是真的没办法了。
谢谢各位了。唉,发现了,SQL的功能比起Oracle来 的确是差得太远啊!
oracle有个rowid的概念,这个在sqlserver中也是很容易实现的,加一个不用自己去管理的自增列也容易,并且比oracle在行更直观,oracle的高级并不体现在这儿。我觉得不接触企业级数据库的应用,是不能感觉oracle的强大的。
还有一个,ms也认可,oracle的存储过程比sqlserver的功能要强大的多
我没怎么用过SQLServer,好多东西都是现学的。我也不是很精通Oracle,仅凭我的感觉也说明不了什么。但我真的是感觉写存储过程或触发器时,SqlServer不及Oracle方便啊,呵呵还有一个感觉:SQLServer的语法,更像VBasic的语法;而Oracle的语法则有点像Java
不知道这个感觉对不对啊
instead of insert
as
insert 表 (...,性别,...)
select ...,case when 性别='1' then '男' ... end,...
from insertedgo
用惯一个,再用这个的思路去用第二个,那什么样的第二个都是不如第一个。
-----------------------------你的话我明白,呵呵,比较有道理……
:)