在视图中使用触发器,因此无法编辑表

时间:2016-10-27 15:20:46

标签: sql-server sql-server-2008 tsql

我有两个表,dbo.editable和dbo.locked。我还有一个视频dbo.view。

视图如下,

SELECT FROM dbo.locked CROSS JOIN dbo.editable 

我希望dbo.locked能够插入/更新/删除/无论如何。但是从dbo.view我希望它拒绝对dbo.locked进行任何更改。

所以只是为了澄清我希望能够编辑dbo.locked,因为其他人无法访问它。我希望他们能够查看数据但无法编辑它这就是为什么我有dbo.view。任何可编辑的数据都将驻留在dbo.editable

我试过这个

SELECT FROM dbo.locked CROSS JOIN dbo.editable 

GO

CREATE TRIGGER trReadOnlyDel_dbo.locked ON dbo.locked 
INSTEAD OF 
           DELETE
AS
BEGIN
RAISERROR(  'dbo.locked table is read only.', 16, 1 )

ROLLBACK TRANSACTION
END

但是我收到了错误,

CREATE TRIGGER must be the first statement in a query batch.

我做错了什么,我该如何解决?

0 个答案:

没有答案