mssql数据库服务如何从其他表取数更新 显示

相关文章推荐:
MSSql表有相同的记录怎么删除
本帖最后由 stevenzjds 于
11:37 编辑
sql 2005 数据库里被删了一个表,但是不知道谁删的,求助怎么查~~~,最好能给出具体步骤,我是新手~~~
阅读(1194) 回复(2)
其他文章推荐
ITPUB官方微博:
要求:从销售数据表中,读取每天的10笔记录?!
销售数据表中,每天都有很多销售记录,想取每天的10笔用做应付有关部门的检查。
请高手帮忙,谢谢!
最好不要存储过程。
阅读(276) 回复(1)
我对一张表执行UPDATE命令
结果显示(所影响的行数为 2 行)
但是等我用SELECT查看结果时却发现并没有更新进去。
这会是什么原因造成的?:o
阅读(1244) 回复(2)
用dts只能导出为excel格式,或直接导到某个数据源(如odbc,或其它类型的数据库,如oracle,sqlserver,access)中。
因为数据库的结构时时在变化,不想同时维护一个测试库,一个初始化库,我想将某些初始化数据导出来备份。在将来需要的时候将测试库(时时维护它的结构)数据清空,再将原来备份的某些表的初始化数据导入该空的标准结构库中。
我在oracle中用toad的导出工具导出表数据,可以得来insert语句组成的.sql语句,如何在m...
阅读(1918) 回复(0)
如可导出mssql 数据库的每一个表的第一条记录,找了很多方法都没能实现,希高手指点。
阅读(1110) 回复(5)
mssql中把动态sql的结果插入一个表的语句,对应oracle怎么写??
insert #WellsInfo_2(wid,fld,well,oper,ser,wloc,wnum,sqid,pf,spr3) exec(@sql)
阅读(962) 回复(2)
遇到MS SQL Server 2005 无法删除数据库作业。
  首先,以sa账户登录,查看以下2个表的数据,如果不为空就有问题。
  Sql代码
  select * from msdb.dbo.sysmaintplan_subplans
  select * from msdb.dbo.sysmaintplan_log
  如果不为空,执行以下操作,基本上不用考虑删除哪一条记录,有问题的作业就会在这里。
SQL Server
阅读(61) 回复(0)
孔子有云:温故而知新,可以为师矣。既然孔老圣人都云了,咱今天就一起来重温一下MS SQL吧。开篇声明一下:大部分都是基础内容,SQL非常熟练的就别浪费您的时间了,因为这年头,大家时间都挺宝贵的。但是如果您坚持看完了,肯定也不会让您失望的,其中有几点很常用,但是也很少有人知道,希望能对您有所帮助。由于大部分都是记的
SQL Server
阅读(151) 回复(0)
Oracel与mssql的互访
Oralce cmssql的互防.pdf
阅读(750) 回复(0)
公司的一较老的平台因为更换服务器要进行迁移,在自己接手后因为该平台不怎么使用就没管过它,但近段时间因为要更换服务器,需要把该服务迁移到新服务器上去,在迁移的过程中出现了一些问题。
该服务器因搭建较早,使用的是 win2003server,msserver2000的数据库,WEB服务器用的是resin2.1.13,新的服务器装的是win2008serv
SQL Server
阅读(60) 回复(0)
亲爱的itpuber:欢迎您在ITPUB博客安家,您的博客地址是:http://blog.itpub.net//我们是一个IT技术的技术家园,每一个IT技术人员都能在这里找到与您志同道合的知音。您可以用文字、图片记录分享您的IT技术、职场经验和个人成长经历等,随时随地发表博文和上传图片分享您的技术成果,还可以在ITPUB博客平台上与网友交流和分享。我们为您
阅读(90) 回复(0)
盛拓传媒:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新 - 纵横纳财 - ITeye技术网站
博客分类:
一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新。而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。我们先来讨论根据其他表数据更新你要更新的表&&
一、MS&&& SQL&&& Server&& 多表关联更新
&&&& sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式 中引用要更新的表以外的其它数据。
&&&& 一般形式:
update A SET 字段1=B表字段表达式, 字段2=B表字段表达式&& from B WHERE&&& 逻辑表达式
&&& UPDATE dbo.Table2
&&& SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
&&& FROM dbo.Table2
&&& INNER JOIN dbo.Table1
&&& ON (dbo.Table2.ColA = dbo.Table1.ColA);
&&& 实际更新的操作是在要更新的表上进行的,而不是在from子句所形成的新的结果集上进行的
二、Oracle&&&& 多表关联更新
&&&& Oracle没有update from语法,可以通过两种实现方式:
1、利用子查询:
&&&& update&&& A&
&&&& SET&&& 字段1=(select&&& 字段表达式&&& from&&& B&&& WHERE&&& ...),&
&&&&&& 字段2=(select&&& 字段表达式&&& from&&& B&&& WHERE&&& ...)&
&&&& WHERE&&& 逻辑表达式&&
&& UPDATE多个字段两种写法:
UPDATE table_1 a
&& SET col_x1 = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m),
&&&&&& col_x2 = (SELECT b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m)
WHERE EXISTS (SELECT * FROM table_2 b WHERE b.col_n = a.col_m)
UPDATE table_1 a
&& SET col_x1 = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m),
&&&&&& col_x2 = (SELECT b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m)
WHERE a.col_m=(SELECT b.col_n FROM table_2 b WHERE b.col_n = a.col_m)
UPDATE table_1 a
&& SET (col_x1, col_x2) = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m)
WHERE EXISTS (SELECT * FROM table_2 b WHERE b.col_n = a.col_m);
UPDATE table_1 a
&& SET (col_x1, col_x2) = (SELECT b.col_y1, b.col_y2 FROM table_2 b WHERE b.col_n = a.col_m)
WHERE a.col_m=(SELECT b.col_n FROM table_2 b WHERE b.col_n = a.col_m)
&&& 1. 对于子查询的值只能是一个唯一值,不能是多值。
&&& 2. 子查询在绝大多数情况下,最后面的where EXISTS子句是重要的,否则将得到错误的结果。且where EXISTS子句可用另一方法代替,如上。最后的子句是对a表被更新记录的限制,如无此句,对于a表中某记录,如在b表中关联不到对应的记录,则该记录被更新字段将被更新为null。where EXISTS子句就是排除对a表中该情况的记录进行更新。
2、利用视图:
UPDATE (SELECT A.NAME ANAME,B.NAME BNAME FROM A,B WHERE A.ID=B.ID)
SET ANAME=BNAME;
&&& 1. 对于视图更新的限制:
&&& 如果视图基于多个表的连接,那么用户更新(update)视图记录的能力将受到限制。除非update只涉及一个表且视图列中包含了被更新的表的整个主键,否则不能更新视图的基表。
另外,Oracle中的Delete的from子句也没有多表联接的功能,只能通过子查询的方式来做:
delete from 表A where exists (select * from 表B where 表A.empid=表B.empid)
delete from 表A where 表A.empid in (select empid from 表B)
三、oracle视图多表更新
在oracle中通常如果视图的数据源来自单表则该视图可以进行更新。而如果视图数据源来自两个以上表时这个视图是不可更新的。但有时候为了操作的方便我们更希望能够对多表视图也进行更新。
这时候我们可以通过建立更新触发器来替代该视图原有更新以达到多表更新的效果
3.1 创建测试数据表
--===================================================
--创建测试表
--===================================================
Drop Table t1;
Drop Table t2;
create table t1
( t11 numeric(28),t12 varchar2(20));
create table t2
( t11 numeric(28),t22 varchar2(20));
3.2 多表视图范例
--===================================================
--创建测试视图
--===================================================
create Or Replace view t as
&& select T1.t11 f1 ,T1.t12 f2 ,T2.t22 f3
&&&&& from T1,T2
&&&&& Where T1.t11=T2.t11;
3.3 多表视图触发器范例&&&&&
--===================================================
--创建视图的替代触发器
--===================================================
Create Or Replace Trigger Trg_InsUpdDel_t
Instead Of Insert or update or delete
on t
for each row
Declare
begin
&& If Inserting Then
&&&&& Insert Into t1 (t11,t12) Values (:New.f1,:New.f2);
&&&&& Insert Into t2 (t11,t22) Values (:New.f1,:New.f3);
&& elsif Updating Then
&&&&& Update t1 set t11=:New.f1,t12=:New.f2 where t11=:New.f1;
&&&&& Update t2 set t11=:New.f1,t22=:New.f3 where t11=:New.f1;
&& elsif Deleting then
&&&&& Delete from t1 where t11=:Old.f1;
&&&&& Delete from t2 where t11=:Old.f1;
&& E
如此即实现多表可更新视图的定义工作 。
但要注意当视图进行重新编译的时候这个触发器会失效需要重建。
表关联更新语句:
AM_APPROVE_LIST_LOG_SAMMY
AM_APPROVE_LIST_SAMMY
更新栏位:
EMP_ID, APPROVER_SEQUENCE, APPROVER_ID
关联栏位:
EMP_ID,&& APPROVER_ID
UPDATE am_approve_list_log_sammy a
&& SET (a.emp_id, a.approver_sequence, a.approver_id) =
&&&&&&&&&& (SELECT b.emp_id, b.approver_sequence, b.approver_id
&&&&&&&&&&&& FROM am_approve_list_sammy b
&&&&&&&&&&& WHERE b.emp_id = a.emp_id AND b.approver_id = a.approver_id)
WHERE EXISTS (SELECT 1
&&&&&&&&&&&&&&&& FROM am_approve_list_sammy c
&&&&&&&&&&&&&&& WHERE c.emp_id = a.emp_id AND c.approver_id = a.approver_id)
方法二:(10g(含)以上版本才可以使用)
MERGE INTO gt$fm_form_field_import imp
&&&&&&&&& USING fm_form_field fie
&&&&&&&& ON (&&&& imp.field_name = fie.field_name
&&&&&&&&&&&& AND fie.form_kind = 'BQE.FORM.7'
&&&&&&&&&&&& AND fie.table_name = 'BQEFORM7')
&&&&&&&& WHEN MATCHED THEN
&&&&&&&&&&& UPDATE
&&&&&&&&&&&&&& SET imp.description = fie.description,
&&&&&&&&&&&&&&&&&&& imp.is_query = fie.is_query,
&&&&&&&&&&&&&&&&&&& imp.is_default_value = fie.is_default_value,
&&&&&&&&&&&&&&&&&&& imp.is_query_show = fie.is_query_show,
&&&&&&&&&&&&&&&&&&& imp.is_form_show = fie.is_form_show,
&&&&&&&&&&&&&&&&&&& imp.is_participant = fie.is_participant,
&&&&&&&&&&&&&&&&&&& imp.is_mail_show = fie.is_mail_show
浏览: 23742 次
来自: 深圳
ssssssssssssssssssssssssss
有帮助,谢谢!
说得很好,概述很全。
感谢楼主分享。
在ext.../resource/css/ext-all.cs ...CopyRight & , , All Rights Reserved. 版权所有
网页代码()主要提供网页特效代码、网站设计素材、网页制作教程等资源。包括网页平面设计布局、动态网站开发、字体下载、flash素材、网页模板、背景图标按钮素材、中文英文设计字体下载及在线手册和站长工具查询等资源。}

我要回帖

更多关于 mssql数据库服务 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信