SQL触发器插入
回答
要回答这个问题你问
CREATE TRIGGER dbo.tr_i_BaseTable
ON dbo.BaseTable
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO WorkTable
SELECT * FROM INSERTED
END
但不是实际复制的行两次你能不能用行的一些其他属性来检测应考虑工作台的一部分,“新”的。如ID或添加“插入”日期/时间字段。
或另一种作法可能是刚与新工作台重新开始,并考虑要归档所有以前的记录。您可以创建(可能是分区)视图UNION ALL
- 这两个表适用于需要在合并集上工作的那些查询。
我了解您与您的评论的到来。 数据库表是一个正确的混乱和运行速度很慢,因此我想保持“工作队列”数据分离。 感谢您的代码,您已经完成了我的设想。 再次感谢 Sp 非常感谢 – Steven 2010-06-22 13:39:18
有了这个触发器:
CREATE TRIGGER InsertIntoWorkingTable
ON VeryOldHugeDatabaseTable
INSTEAD OF INSERT
AS
insert into WorkingTable (column1, column2, column3...) (
select column1, column2, column3
from inserted
)
所有你需要做的就是保持插入到你的VeryOldHugeDatabaseTable。触发器会忙于插入此工作表。
一旦一段时间,你可以简单地通过一个工作什么的都插入或存档推出一个存储过程到这个旧表从工作表。
我从他的“工作队列”的评论得到的印象是,他是在插入主表和放置FK在一个单独的表作为某种行动项目连接到该行。 – Kendrick 2010-06-22 13:10:46
我们有一个v数据库表,最初建在访问(它的噩梦),它目前只有80列宽,有1.5米行。它仍然被用于使用复杂的存储过程为下一个客户提供服务,正如您可以想象的那样,这个过程非常缓慢。我试着给所有新行传输到另一台(7列,将只具有100-200行),一旦他们被虐待的工作将它们归档,这样前端的用户将看到的速度大幅增加.. 诗前端应用程序仍然是和访问数据库 – Steven 2010-06-22 13:15:17
我现在看到了需要! =) – 2010-06-22 13:30:39
- 1. T-SQL插入触发器
- 2. SQL触发器,从插入
- 3. SQL Server:插入触发器
- 4. 插入sql触发器
- 5. SQL插入触发器
- 6. SQL - 触发器插入件
- 7. sql server触发器插入
- 8. SQL服务器插入触发器
- 9. SQL服务器触发插入
- 10. Oracle SQL触发器插入/更新---
- 11. 插入更新触发器后PL/SQL
- 12. 之后SQL Server插入触发器
- 13. 在pl/sql中插入触发器
- 14. 插入SQL Server 2000触发器
- 15. sql触发器更新并插入
- 16. 在sql server中插入触发器后
- 17. 插入问题后的SQl触发器
- 18. 插入比较的SQL触发器
- 19. SQL Server触发器无法插入
- 20. 批量插入后的SQL触发器
- 21. SQL Server的触发器,插入串
- 22. T-SQL触发器插入更新
- 23. 插入后的SQL Server触发器
- 24. SQL触发器和插入的代码
- 25. SQL触发器插入到表
- 26. PL/SQL触发器,以防止插入
- 27. SQL触发器,插入语句
- 28. PL SQL触发器插入值
- 29. 插入更新后的SQL触发器
- 30. Oracle SQL触发器插入/更新
您使用的是什么RDBMS和版本?触发器语法各不相同。只要跟踪最近处理的ID或以任何方式为此添加日期时间列,您可能会更好? – 2010-06-22 13:15:37
抱歉它是一个SQL Server 2000数据库 – Steven 2010-06-22 13:18:36