tSQLt安装失败:执行PrepareServer.sql遇AuditLogDDL对象不存在错误求助
解决tSQLt PrepareServer.sql执行时的AuditLogDDL对象不存在错误
问题分析
错误提示表明AuditLogDDLEvents存储过程在尝试访问AuditLogDDL表时,该表尚未创建或不存在。通常是脚本执行顺序异常、之前的执行中断导致表创建语句未完成,或是权限不足导致表无法创建。
修复步骤
手动创建缺失的AuditLogDDL表
先执行以下SQL语句创建表,确保结构正确:CREATE TABLE AuditLogDDL ( EventType NVARCHAR(100), EventTime DATETIME, LoginName NVARCHAR(100), SchemaName NVARCHAR(100), ObjectName NVARCHAR(100), ObjectType NVARCHAR(100), EventData XML );若表已存在但存储过程仍报错,检查是否在正确数据库下执行,或在存储过程中使用表的完整名称(如
[dbo].[AuditLogDDL])。重新执行脚本关键部分
找到PrepareServer.sql中创建AuditLogDDL表的段落,确认该语句执行成功后,再执行创建AuditLogDDLEvents存储过程的部分。若之前脚本执行中断,可从表创建语句开始重新执行剩余内容。检查执行权限
确保执行脚本的账号拥有CREATE TABLE和CREATE PROCEDURE权限,以及目标数据库的修改权限。权限不足时,切换至管理员账号(如sa)执行脚本。验证对象状态
执行以下语句确认表和存储过程是否存在:SELECT * FROM sys.tables WHERE name = 'AuditLogDDL'; SELECT * FROM sys.procedures WHERE name = 'AuditLogDDLEvents';若表不存在则先创建;若存储过程存在但引用错误,可删除后重新创建该存储过程。
内容的提问来源于stack exchange,提问作者user3624829
相关产品推荐
相关产品推荐

