面试题。求这sql写法,谢谢

nitaiyoucala 2018-02-08 04:05:16
当更新tb1的remark时候 给tb2的remark也对应更新。关联id是 uid 这个触发器怎么写?

建表sql


CREATE TABLE [dbo].[tb1](
[uid] [int] IDENTITY(1,1) NOT NULL,
[remark] [nvarchar](50) NULL,
CONSTRAINT [PK_tb1] PRIMARY KEY CLUSTERED
(
[uid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object: Table [dbo].[tb2] Script Date: 2018/2/8 16:02:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb2](
[id] [int] IDENTITY(1,1) NOT NULL,
[uid] [int] NULL,
[remark] [nvarchar](50) NULL,
CONSTRAINT [PK_tb2] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
SET IDENTITY_INSERT [dbo].[tb1] ON

GO
INSERT [dbo].[tb1] ([uid], [remark]) VALUES (1, N'测试1')
GO
INSERT [dbo].[tb1] ([uid], [remark]) VALUES (2, N'测试2')
GO
INSERT [dbo].[tb1] ([uid], [remark]) VALUES (3, N'测试333')
GO
SET IDENTITY_INSERT [dbo].[tb1] OFF
GO
SET IDENTITY_INSERT [dbo].[tb2] ON

GO
INSERT [dbo].[tb2] ([id], [uid], [remark]) VALUES (1, 1, N'测试1')
GO
INSERT [dbo].[tb2] ([id], [uid], [remark]) VALUES (2, 2, N'测试2')
GO
INSERT [dbo].[tb2] ([id], [uid], [remark]) VALUES (3, 3, N'测试3')
GO
SET IDENTITY_INSERT [dbo].[tb2] OFF
GO

...全文
1348 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
RINK_1 2018-02-09
  • 打赏
  • 举报
回复

CREATE TRIGGER UPDATE_B ON TB1
FOR UPDATE
AS

BEGIN

IF UPDATE(REMARK)

BEGIN
UPDATE TB2
SET REMARK=A.REMARK
FROM INSERTED A
JOIN TB2 B ON A.UID=B.UID
END

END
日月路明 2018-02-08
  • 打赏
  • 举报
回复
create triiger on dbo.tb1 for update as begin update tb2 set remark=t.Remark from tb2 b inserted t on b.UID=t.UID end
二月十六 版主 2018-02-08
  • 打赏
  • 举报
回复
触发器
CREATE TRIGGER dbo.tb1_tri ON [dbo].tb1
FOR UPDATE
AS
BEGIN
UPDATE tb2
SET remark = Inserted.remark
FROM Inserted
WHERE Inserted.uid = tb2.uid

END
GO


测试
UPDATE dbo.tb1 SET remark='aaaa' WHERE uid=1

SELECT * FROM tb1
SELECT * FROM tb2


结果:

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧