sql-server - 在 SQL 中使用主表中始终更新的数据创建副本表的最佳方法
问题描述
我有一个表 A。我需要创建一个名为 B 的 A 的副本。当在 A 上执行任何插入、更新或删除操作时,同样需要在 B 上更新。我知道借助触发器和我可以这样做,但它会影响性能。如果表A中发生批量插入,是否会通过触发器将其插入B而不影响性能。或者任何其他方式都是可能的。方向上的任何关注都会有所帮助。
解决方案
支持批量 INSERT/UPDATE/DELETE 的 sql-server 触发器。
您可以像这样在表 A 上创建 INSERT 触发器:
CREATE TRIGGER A_INSERT
ON A
AFTER INSERT
AS
BEGIN
INSERT INTO B
SELECT * FROM INSERTED
END
假设您的表在列(和列顺序)方面是相同的,
您可以对删除和更新触发器应用相同的原则。
** 请记住它对性能有一些影响,但如果 B 没有任何约束、外键等 - 性能应该不会受到太大影响
推荐阅读
- php - 在 PHP 中使用 openssl_public_encrypt() 加密字符串并使用 arduino 在 optiga trust mic 中解密
- android - BottomNavigationView 菜单文本未出现
- git - 错误地从另一个分支而不是主线创建了一个分支
- python - 在 KIvyMD 中除以零
- flutter - 如何在just_audio中扩展后流式传输带有额外信息的mp3文件
- python - 让 CMD 命令在后台运行
- django - i want email has to be unique
- discord.js - 当我尝试创建一个角色时,它给了我一个错误(discord.js)
- java - Spring Cloud Config Server 不适用于 Docker 构建
- servicenow-rest-api - 资产的 ServiceNow 表名