在SQL SERVER 2008的数据库中创建表时,是否有办法像触发器那样运行某些函数?SQL SERVER 2008 TRIGGER ON CREATE TABLE
1
A
回答
5
是的,它被称为DDL触发器。 CREATE TRIGGER
的文档有DROP_SYNONYM
的示例(对于示例来说,这是一个非常可疑的选择),但您需要改为CREATE_TABLE
事件。了解他们是如何工作的一个更好的起点可能是在这里:
http://msdn.microsoft.com/en-us/library/ms190989.aspx
如果你有更具体的细节,例如你想传递给这个函数到底是什么(我假定你是指过程),或者过程是做什么的,我们可以提供更多有用的和特定的帮助。
4
是DDL触发器。例如,下面是我编写的一些代码,以防止某些表被修改:
PRINT N'Create DDL trigger to prevent changes to various tables'
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER NoEditCertainTables ON DATABASE
FOR DROP_TABLE, ALTER_TABLE, CREATE_TABLE
AS
SET CONCAT_NULL_YIELDS_NULL ON
DECLARE @AffectedTable varchar(255)
SELECT @AffectedTable = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(100)')
--This is the name of the table(s) you dont want messed with
IF (@AffectedTable IN ('Table1','Table2','Table3'))
BEGIN
ROLLBACK;
END
SET CONCAT_NULL_YIELDS_NULL OFF
GO
相关问题
- 1. CREATE TRIGGER - SQL SERVER
- 2. SQL Azure的:在CREATE TABLE TRIGGER
- 3. MySQL的CREATE TRIGGER ON INSERT
- 4. H2DB - 脚本SQL ON UPDATE CREATE TABLE请求
- 5. 在CREATE TRIGGER
- 6. 将SQL Server CREATE TABLE转换为Access
- 7. 生成**裸** SQL Server中的CREATE TABLE和CREATE PROC语句
- 8. SQL CREATE TABLE错误
- 9. 错误与SQL CREATE TRIGGER甲骨文
- 10. CREATE TRIGGER在SQL Server 2005上花费超过30分钟
- 11. Howto create ac#assembly to load into sql server 2008
- 12. SQL新手,CREATE TABLE错误
- 13. CREATE TRIGGER sys_exec和Python
- 14. 不能CREATE TRIGGER在sqlite3的
- 15. SQL Server 2008中:ALTER TABLE查询
- 16. T-SQL:对ALTER TABLE脚本崩溃修改CREATE TABLE脚本
- 17. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException CREATE TABLE
- 18. CREATE PROCEDURE SQL Server
- 19. CREATE TABLE SQL语句将不会运行
- 20. Microsoft SQL Server语法错误涉及CREATE TABLE
- 21. MySQL错误#1064在CREATE TABLE
- 22. 何时CREATE TABLE AS SELECT与CREATE TABLE LIKE?
- 23. 意外的标记“CREATE TRIGGER
- 24. MySQL CREATE TABLE&FOREIGN KEY错误
- 25. 在SQL Server 2008
- 26. SQL“CREATE TABLE”查询在java中
- 27. 1064 SQL错误CREATE TABLE语句中
- 28. CREATING INDEX SQL Server 2008
- 29. sql server 2008分区
- 30. CREATE TRIGGER随着Derby中的条件
thanx,我这是我正在寻找的。 – themis