Joe*_*moe 0 t-sql sql-server sql-server-2008
这就是我想要完成的事情:
在SQL Server代理作业的第一步中检查数据库是否为只读.如果是这种情况 - 退出工作.
所以我想我将使用"高级属性"作业步骤,并选择"退出作业报告成功"为"失败阳离子:"
但是如何在不使用RAISERROR()的情况下使T-SQL脚本失败?原因我不想使用RAISERROR()是因为需要成为sysadmin服务器角色的成员才能使用它.
我找到了相当丑陋的方法 - 从表中选择一些不存在的东西,脚本看起来像这样:
declare @DBIsRO int;
SET @DBIsRO= (SELECT is_read_only
FROM sys.databases
WHERE name = 'test')
IF @DBIsRO=1 
   select * from dd -- table dd doesn't exist in current database
然而,这看起来像一个kludge,我正在寻找一个"正确"的方法.
重读文档:
任何用户都可以指定从0到18的严重级别.从19到25的严重级别只能由sysadmin的成员指定...
你可以做:
raiserror( 'Readonly',16,1)
| 归档时间: | 
 | 
| 查看次数: | 896 次 | 
| 最近记录: |