0
A
回答
0
所有類型的INSTEAD OF觸發器一般不支持使用FILESTREAM表 - 和DELETE在這種情況下沒有什麼不同。原因可能是它在UPDATE觸發器和帶外更新(來自.Net或Win32)的情況下會有非常複雜的語義。
如果您提供了一些關於您的場景的更多細節,那麼也許有人可以給你一個解決方法。
1
您可以創建一個的兩個表istead:
CREATE TABLE [dbo].[FileStreams](
[Id] [int] IDENTITY(1,1) NOT NULL,
[RowGuid] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[Data] [varbinary](max) FILESTREAM NULL,
CONSTRAINT [PK_FileStreams] 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],
UNIQUE NONCLUSTERED
(
[RowGuid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] FILESTREAM_ON [FilestreamGroup]
GO
CREATE TABLE [dbo].[Files](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](1024) NULL,
[FileStreamId] [int] NOT NULL,
CONSTRAINT [PK_Files] 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
ALTER TABLE [dbo].[Files] WITH CHECK ADD CONSTRAINT [FK_Files_FileStreams] FOREIGN KEY([FileStreamId])
REFERENCES [dbo].[FileStreams] ([Id])
GO
ALTER TABLE [dbo].[Files] CHECK CONSTRAINT [FK_Files_FileStreams]
GO
外鍵必須是NO ACTION
。它允許你創建INSTEAD OF
觸發器的表文件
相關問題
- 1. Oracle SQL而不是刪除觸發器
- 2. 刪除記錄而不是刪除觸發器
- 3. 而不是刪除之前的觸發
- 4. 是一樣的遞歸CTE和觸發器而不是刪除?
- 5. Vim-snipmate不擴展片段,而是刪除觸發器
- 6. ADOQuery繞過而不是刪除觸發器
- 7. 而不是刪除觸發器,以防止銷售產品刪除
- 8. 而不是在SQL Server中使用多個表刪除觸發器
- 9. 刪除觸發器
- 10. 刪除後刪除觸發器只會觸發嗎?
- 11. 無法刪除觸發器
- 12. 創建刪除觸發器
- 13. 刪除觸發器SQL 2005
- 14. 刪除觸發器不工作
- 15. 刪除觸發器不被執行
- 16. 而不是觸發器不工作
- 17. 刪除FILESTREAM數據
- 18. SQL而不是觸發器有時不會觸發?
- 19. 級聯刪除觸發器調用
- 20. 創建而不是插入觸發器
- 21. Mysql觸發器做INSERT而不是UPDATE
- 22. 而不是觸發器更新主鍵
- 23. MS SQL觸發器 - 可以刪除觸發器也影響刪除行觸發器
- 24. 發送TCP消息/刪除觸發器
- 25. 如何防止使用觸發器發生刪除?
- 26. 使用而不是觸發器來轉換數據類型
- 27. 而不是觸發器使用動態序列SQL Server
- 28. oracle觸發刪除
- 29. 更新而不是刪除
- 30. 更新而不是刪除
我可以通過刪除後觸發器修復它。 我剛剛在那裏插入。 Thx – k0ni 2010-02-23 09:00:54