sql server 级联更新 急急急!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 级联更新 急急急!相关的知识,希望对你有一定的参考价值。
我在网上看到了级联更新的方法,但是就是看不懂,哪位高手直接给个代码!谢谢!
我的问题是这样的:我有两个表:员工(id,姓名,年龄,地址),销售单(销售编号,员工id,销售量),员工表的主键是id,销售单表的主键是销售编号,其中员工id是引用员工表id的外键。
我想做的是:我要更新员工表中id比如:
id 姓名 年龄 地址
01 小红 24 青岛
02 小白 25 青岛
销售编号 员工id 销售量
01 01 200
02 02 180
现在我想将小红的id号改为03将如何改?
网上有人给出了级联更新的语法:
Alter TABLE [dbo].[T_USERGROUP] ADD
CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY
(
[ATNAME]
) REFERENCES [dbo].[T_ACCTTEMPLATE] (
[ATNAME]
) ON Update CASCADE ON Delete CASCADE
但是我看不太懂,请给出级联更新的具体代码(结合我这两个表)!谢谢!
我用的是2000,
您的意思是从sql届面操作就可以?
那样的话,跟我所说的用代码的方法能达到相同的效果吗?
谢谢您!
第二种做法就是写sql语句:
alter table 销售单
Add constraint fk_ygid_xsygid --约束名
Foreign key(员工id) references 员工(id)
on update cascade --级联更新
on delete cascade --级联删除
恩,两种方法的效果是一样的。你自己选择! 参考技术A sql server 级联更新
触发器方式: create trigger trg_A on A for update,delete as begin if exists(select 1 from inserted) update B set Name=(select Name from inserted) where Name=(select Name from deleted) else delete B where Name=(select Name from deleted) end go 要使用级联性更新和删除,用户可以在Alter TABLE 语句的CONSTRAINT子句中使用ON Update CASCADE 和/或 ON Delete CASCADE 关键字。注意他们都必须是应用于外键的。 级联更新和级联删除方式: Alter TABLE [dbo].[T_USERGROUP] ADD CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY ( [ATNAME] ) REFERENCES [dbo].[T_ACCTTEMPLATE] ( [ATNAME] ) ON Update CASCADE ON Delete CASCADE
急急急!应用程序在sql server2005里执行的sql语句怎样查看!
我用的一个软件,准备自己参照他的数据库,再搞一个出来,
比如说,我在应用程序里点一个查询,对应的就要把该查询所执行的sql 语句 获取到,怎么办,在网上看了N多资料,愣是没找到,哎,
复制的别来,哎,各位大侠,回答的好 问题解决了再加分。。
额,不是吧, 我看网上说有什么工具可以获取出来,就是不知道怎么弄。 哎。。。
追答不需要第三方工具,只是要你知道那款软件的SQL环境,如果有那环境,你可以截获SQL执行情况。
追问什么是环境,汗,我小白一个,买的碟子,数据库是自动安装的,环境可能不知道吧。哎
追答你那款软件运行需要的环境呀,你当前能否运行那款软件,如果可以,那就可以通过SQL SERVER里面的监测功能,看当前正在执行什么SQL语句。
追问对对对,就是监测功能,怎么用,我不知道。 我这是sql server 2005的。
追答你以SA连接到数据库,然后到“管理”——“活动监视器”中可以看到当前SQL正在执行的情况。
参考技术A 1、你是想问在你点击完你做的“查询”按键后,它执行了那条查询语句吗?如果是这样的话,方法比较多,比如:以java为例,在对应执行的语句后加一条输出log,形式如下->System.out.println("XXXXXX");当执行到时,会在控制台打出这个log
2、如果你是想在程序中在执行完查询后,别的地方能获取到这个查询语句,你可以将该查询语句用一个字符串装起来,查询完后,将这个字符串传给需要得到该字符串的地方即可
-------
不知道能不能解决你的问题,你可以先试试看追问
额,这应用程序是买的,没源码?我怎么看,汗死
追答解铃还须系铃人啊,如果人家能把源码发给你,最好不过了……
它的数据库文件给你了吗?如果有数据库文件,你可以点击,比较,哪个字段的数据变化了,然后就是根据自己的数据库知识来猜这句该怎么写了... ...
话说这么做的工作量很大啊... ...
不好整啊,不好整啊....
是啊,所以我才想把他的sql语句获取出来,方便啊
参考技术B 这个具体我没有操作过,只是一个建议,你可以实验一下.方法就是先建立两个数据库之间的连接,就是一个数据库可以访问另一个数据的表,然后分别对数据库中的表建立增删改数据的触发器,使在本数据库上的修改操作同时在另一台数据库上执行.
这里我认为应该把一台设置为主数据库,接收所有的修改操作,另一台只处理用户的查询操作,防止两个服务器同时修改时的冲突. 参考技术C 可以在2005里的时间探查器中进行查找。工具—SQL Server Profiler 参考技术D 没理解你的意图追问
就是我要获取应用程序里在数据库里执行的sql 语句。
第5个回答 2011-08-08 获取语句没意义有数据库,自己分析吧。追问
只能如此了,哎。。
以上是关于sql server 级联更新 急急急!的主要内容,如果未能解决你的问题,请参考以下文章
hibernate 执行update更新语句 结果数据没有更新是怎么回事?求解!!!急急急~!!
急急急!应用程序在sql server2005里执行的sql语句怎样查看!