比如:A表有a b c三个字段,如果a字段更新,我就修改b字段的值
可是你用这样:UPDATE XXX WHREE ID IN(SELECT ID FROM XXX)的语句来更新表楼上你可以没遇到,你可以按我说的,自己去模拟一个程序就知道了!
可是你用这样:UPDATE XXX WHREE ID IN(SELECT ID FROM XXX)的语句来更新表楼上你可以没遇到,你可以按我说的,自己去模拟一个程序就知道了!
解决方案 »
- 如何合并二个字段的查询
- 请教个存储过程语法错误问题!
- 这个查询语句怎么写?
- 数据库 + C++ 编程问题~~~~~~~~求助!
- SELECT语句?
- 求一个关于时间的查询语句
- asp调用存储过程难题,盼解答。万分感谢
- 不懂,我在定义完数据库后我的技术主管让我写自定义函数,但我不知道这些有什么用,我以前都是用存储过程的.
- 在触发器中怎样调用存储过程?请举个例子。
- 急!****************求一段简单的触发器代码 Sql Server 2008 ***************
- [MICROSOFT][ODBC SQL SERVER DRIVER][SQL SERVER]用户'(null)'登陆失败。原因:未与信任SQL SERVER连接相关联
- 触发器能不能递归调用?
CREATE TABLE TAB_1
(
ID INT IDENTITY(1,1),
A VARCHAR(20),
B VARCHAR(20)
)
INSERT TAB_1 SELECT 'aa',NULL
UNION ALL SELECT 'bb',NULL
UNION ALL SELECT 'cc',NULL
UNION ALL SELECT 'dd',NULL
GO
CREATE TABLE TAB_2
( ID INT)INSERT TAB_2 SELECT 1
UNION ALL SELECT 3
UNION ALL SELECT 4
GO
SELECT * FROM TAB_1
SELECT * FROM TAB_2CREATE TRIGGER TR_TAB_1 ON TAB_1
FOR UPDATE
AS
IF UPDATE(A)
BEGIN
DECLARE @ID INT
SELECT @ID=ID FROM INSERTED
UPDATE TAB_1 SET B='heihei' WHERE ID=@ID
ENDUPDATE TAB_1 SET A='1' WHERE ID IN(SELECT ID FROM TAB_2)
GO结果只有ID为“4”的被更新了!也许我的水品不高,但这样的情况怎么解决
FOR UPDATE
AS
IF UPDATE(A)
BEGIN
update TAB_1 set B = 'heihei'
from TAB_1 A inner join inserted B on A.ID = B.Id
inner join deleted C on A.Id = C.Id
where B.A <> C.A
END