SqlServer中维护计划无法删除的解决方法

  之前碰到过自己新建的SqlServer维护计划想要删除时删不掉的问题,搜索了半天也没找到解决方法,几乎没有相应的帖子。最后在国外的网站上找到了方法,发现很好用,在这里和大家分享一下免得以后不好找。

 

ExpandedBlockStart.gif 代码
1 . 先执行下面的语句将维护计划的ID查出。
select   *   from  sysmaintplan_plans

2 . 将查出的ID填入到下面几句话中的 '' 中,并执行。
delete   from  sysmaintplan_log  where  plan_id  =   ''

delete   from  sysmaintplan_subplans  where  plan_id  =   ''

delete   from  sysmaintplan_plans  where  id  =   ''

3 . 在Sql Agent中删除相应的Job(维护计划会自动建立相应的Job).
但是这个方法不能确定是否已将所有的系统表中的关于这个维护计划的记录都删除了,希望大家有知道的能给点意见,以上的方法自己使用过很多次了是可以的。

转载于:https://www.cnblogs.com/isql/archive/2009/12/09/1620493.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WITH 关键字用于在 SQL Server 定义一个通用表表达式(CTE)。 CTE 是一种临时的、非持久的数据对象,可以在 SELECT、INSERT、UPDATE 或 DELETE 语句使用,而不需要创建和删除临时表。 WITH 子句的语法如下: WITH cte_name (column1, column2, ...) AS ( SELECT column1, column2, ... FROM ... WHERE ... ) SELECT column1, column2, ... FROM cte_name WHERE ... 示例: WITH EmployeeCTE (EmployeeID, LastName, FirstName) AS ( SELECT EmployeeID, LastName, FirstName FROM Employees WHERE LastName = 'Doe' ) SELECT EmployeeID, LastName, FirstName FROM EmployeeCTE WHERE EmployeeID > 5; 上面这个例子, 通过 WITH 子句创建了一个名为 EmployeeCTE 的 CTE,只包含 LastName 为 Doe 的员工信息。 然后在 SELECT 语句使用该 CTE。 ### 回答2: SQL SERVERwith用于创建临时的、命名的结果集,也称为公共表表达式(Common Table Expression,CTE)。可以将CTE视为一个临时的虚拟表,可以在查询多次引用。 with语句的语法如下: WITH CTE_Name (Column1, Column2, ...) AS ( -- 查询语句 ) SELECT * FROM CTE_Name 其,CTE_Name是公共表表达式的名称,Column1、Column2等是CTE的列名。 使用with语句可以解决一些复杂的查询问题,提高查询的可读性和性能。 举个例子,假设有一个员工表和一个部门表,我们需要查询每个部门的平均工资。可以使用with语句来创建一个临时的虚拟表,该表包含每个部门的工资总和和人数,然后可以在查询引用这个临时表来计算平均工资。 具体的SQL查询语句如下: WITH DepartmentSalary (DepartmentID, TotalSalary, EmployeeCount) AS ( SELECT DepartmentID, SUM(Salary), COUNT(*) FROM Employee GROUP BY DepartmentID ) SELECT DepartmentID, TotalSalary/EmployeeCount AS AverageSalary FROM DepartmentSalary 在这个例子,我们创建了一个名为DepartmentSalary的临时表,包含部门ID,工资总和和员工数量。然后在主查询,我们从DepartmentSalary计算平均工资。 总之,with语句在SQL SERVER用于创建临时的、命名的结果集,可以提高查询的可读性和性能。通过with语句,我们可以在一个查询多次引用一个临时表,解决一些复杂的查询问题。 ### 回答3: 在SQL SERVER,WITH语句用于创建临时的、可被查询引用的结果集,也被称为公共表表达式(CTE)。 WITH语句有两种形式:递归和非递归。非递归形式使用普通的SELECT语句来创建临时结果集,而递归形式则可以用来处理具有层次结构的数据。 使用WITH语句可以提高查询的可读性和可维护性。通过给子查询分配一个可识别的名称,可以将复杂的查询拆分为更简洁的模块,使代码更易于理解。此外,还可以在同一个查询内多次引用同一个公共表表达式,从而减少冗余代码。 下面是两个示例,以说明WITH语句的使用方法: 1. 非递归形式: WITH Sales2019 AS ( SELECT ProductID, SUM(Quantity) AS TotalSales FROM Sales WHERE YEAR(OrderDate) = 2019 GROUP BY ProductID ) SELECT ProductID, TotalSales FROM Sales2019 上面的示例,使用WITH语句创建了一个名为Sales2019的公共表表达式,它包含了2019年的每个产品的销售总量。然后,在SELECT语句引用了这个表,以获得最终的结果集。 2. 递归形式: WITH RecursiveEmployees AS( SELECT EmployeeID, EmployeeName, ManagerID FROM Employees WHERE ManagerID IS NULL UNION ALL SELECT e.EmployeeID, e.EmployeeName, e.ManagerID FROM Employees e INNER JOIN RecursiveEmployees re ON e.ManagerID = re.EmployeeID ) SELECT EmployeeName, ManagerName FROM RecursiveEmployees re LEFT JOIN Employees m ON re.ManagerID = m.EmployeeID 上面的示例,使用WITH语句创建了一个名为RecursiveEmployees的公共表表达式,用来递归地获取员工的上级信息。通过递归地联接表本身,可以获取每个员工的上级员工,直到达到顶级(没有上级的员工)。最后,在SELECT语句通过LEFT JOIN将员工和其上级的信息进行关联。 总之,WITH语句在SQL SERVER用于创建公共表表达式,通过命名子查询来提高查询的可读性和可维护性,以及减少冗余代码的使用。无论是非递归形式还是递归形式,使用WITH语句都可以有效地处理复杂的查询需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值