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. Databaselink&而不是觸發器
- 11. 排在觸發刪除不調用其刪除觸發器在MSSQL
- 12. 刪除後刪除觸發器只會觸發嗎?
- 13. 刪除變異觸發器
- 14. 無法刪除觸發器
- 15. 刪除觸發器SQL 2005
- 16. 刪除SQL觸發器
- 17. 創建刪除觸發器
- 18. MySQL觸發刪除整個表而不是一個條目
- 19. 觸發「而不是刪除」,它可以工作嗎?
- 20. 刪除觸發器不工作
- 21. 刪除觸發器不插入記錄
- 22. 不能創建/刪除觸發器
- 23. 刪除觸發器不被執行
- 24. 刪除觸發器不工作
- 25. 而不是觸發器不工作
- 26. 刪除FILESTREAM數據
- 27. SQL而不是觸發器有時不會觸發?
- 28. 更換觸發程序,但不刪除觸發器
- 29. 使用preventDefault()而不是刪除attr href
- 30. 創建DML觸發器(用於刪除)
我可以通過刪除後觸發器修復它。 我剛剛在那裏插入。 Thx – k0ni 2010-02-23 09:00:54