2010-02-22 1 views
0

Почему я не могу использовать Вместо того, чтобы удалять Триггер на таблице с столбцом filbest varbinary?Вместо удаления триггера с FileStream

Есть ли обходной путь?

Я хочу обновить поле при выполнении команды удаления.

Благодаря

ответ

0

Все типы триггеров INSTEAD OF обычно не поддерживаются с таблицами FileStream - и DELETE не отличается в этом случае. Вероятно, причина в том, что в случае триггеров UPDATE и внеполосных обновлений (из .Net или Win32) у него будет очень сложная семантика.

Если вы предоставите более подробную информацию о своем сценарии, то, возможно, кто-то сможет дать вам обходной путь.

+0

Я мог бы исправить это с помощью триггера после удаления. Я только что сделал вставку туда снова. Thx – k0ni

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. Он позволяет вам создать триггер для таблицы. Файлы