消息2812,级别16,状态62,行12无法找到存储过程'SP_dboption'。在SQL 2016中

时间:2016-08-25 11:31:57

标签: sql sql-server

Declare @db varchar(255)
declare c cursor for
select name from sys.databases where is_read_only=0 and state=0 and name  NOT In ('master','model','tempdb','msdb')
open c
fetch c into @db
while @@fetch_status=0
Begin
      exec SP_dboption @db,'trunc. log on chkpt.','true' 
      DBCC shrinkdatabase (@db)
      fetch next from c into @db
End
close c
Deallocate c

2 个答案:

答案 0 :(得分:1)

SQL Server 2012中已停止

sp_dboption。请参阅Discontinued Database Engine Functionality in SQL Server 2012

此外,'trunc. log on chkpt已替换为SQL Server 2000中的SIMPLE恢复模型。更新现代版本代码的时间。应避免使用SHRINKDATABASE,因为它会引入碎片。

答案 1 :(得分:0)

example:数据库名称为example,表名称为table1,过程名称为pro1,因此您必须编写以下内容: exec example.dbo.pro1(如果有,则为@parameter) 从examol.dbo.table1中选择*