将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行"。

  --或者在master中创建存储过程后,执行语句设置为自动启动

  use master

  exec sp_procoption '存储过程名','startup','on'
---------------------------------------------------------------

自动执行存储过程

  SQL Server 启动时可以自动执行一个或多个存储过程。这些存储过程必须由系统管理员创建,并在 sysadmin 固定服务器角色下作为后台过程执行。这些过程不能有任何输入参数。

  对启动过程的数目没有限制,但是要注意,每个启动过程在执行时都会占用一个连接。如果必须在启动时执行多个过程,但不需要并行执行,则可以指定一个过程作为启动过程,让该过程调用其它过程。这样就只占用一个连接。

  在启动时恢复了最后一个数据库后,即开始执行存储过程。若要跳过这些存储过程的执行,请将启动参数指定为跟踪标记 4022。如果以最低配置启动 SQL Server(使用 -f 标记),则启动存储过程也不会执行。有关更多信息,请参见跟踪标记。

  若要创建启动存储过程,必须作为 sysadmin 固定服务器角色的成员登录,并在 master 数据库中创建存储过程。

  使用 sp_procoption 可以:

  将现有存储过程指定为启动过程。

  阻止过程在 SQL Server 启动时执行。

joomy 發表在 痞客邦 留言(0) 人氣()

如果只有ufdata.mdf(数据库文件),ufdata.ldf(日志文件)可以运用系统数据库(master)里的系统存储过程 sp_attach_db 来恢复,具体操作过程:在Query Analyzer 或者 Dos 里的osql 命令来实现,exec sp_attach_db '数据库名','参数1(第一个物理文件的目录及文件名)','参数1(第二个物理文件的目录及文件名)' 如 exec sp_attach_db 'ufsystem','D:\wf821\admin\ufsystem.ldf','D:\wf821\admin\ufsystem.mdf'
注:如果是该数据库为灰色,则需要先断开该物理文件与数据库的连接, 使用sp_detach_db 语法: exec sp_detach_db '数据库名'
如果是只有mdf 文件(数据库文件),则需要另外一个系统存储过程sp_attach_single_file_db
具体语法为 exec ap_attach_single_file_db 'ufsystem','D:\wf821\admin\ufsystem.mdf'
stop SQL Server service ,replace physname by new files and start SQL server service. 其实这一种方法也可以应用于当数据库出现损坏的情况,利用SQL Server 在启动时主动检测数据库是否完好的功能。

joomy 發表在 痞客邦 留言(0) 人氣()

一、了解DBCC
 DBCC(database consistenecy checker,简称dbcc) 是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性。
 数据库控制台命令语句可分为以下类别:
 维护: 对数据库、索引或文件组进行维护的任务。 
 杂项: 杂项任务,如启用跟踪标志或从内存中删除 DLL。
 信息: 收集并显示各种类型信息的任务。
 验证: 对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作


二、DBBCC维护语句:对数据库、索引或文件组进行维护的任务。
 DBCC CLEANTABLE。回收删除的可变长度列和文本列的空间。
  DBCC CLEANTABLE
  (
      { ’database_name’ | database_id | 0 }
   , { ’table_name’ | table_id | ’view_name’ | view_id }
      [ , batch_size ]
  )
  [ WITH NO_INFOMSGS ]
 DBCC INDEXDEFRAG。指定表或视图的索引碎片整理。 
  DBCC INDEXDEFRAG
   (
       { ’database_name’ | database_id | 0 } 
    , { ’table_name’ | table_id | ’view_name’ | view_id } 
    , { ’index_name’ | index_id } 
    , { partition_number | 0 }
   )
       [ WITH NO_INFOMSGS ] 

 DBCC DBREINDEX。 对指定数据库中的表重新生成一个或多个索引。
  DBCC DBREINDEX 
  ( 
   ’table_name’ 
      [ , ’index_name’ [ , fillfactor ] ]
  )
      [ WITH NO_INFOMSGS ] 

 DBCC SHRINKDATABASE。 收缩指定数据库中的数据文件大小。
  DBCC SHRINKDATABASE 
  ( ’database_name’ | database_id | 0 
       [ ,target_percent ] 
       [ , { NOTRUNCATE | TRUNCATEONLY } ] 
  )
  [ WITH NO_INFOMSGS ]

 DBCC DROPCLEANBUFFERS。 从缓冲池中删除所有清除缓冲区。DBCC DROPCLEANBUFFERS [ WITH NO_INFOMSGS ]
 DBCC SHRINKFILE。 收缩相关数据库的指定数据文件或日志文件大小。
  DBCC SHRINKFILE 
  (
      { ’file_name’ | file_id } 
      { [ , EMPTYFILE ] 
      | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
      }
  )
  [ WITH NO_INFOMSGS ]
 DBCC FREEPROCCACHE。 从过程缓存中删除所有元素。DBCC FREEPROCCACHE [ WITH NO_INFOMSGS ]
 DBCC UPDATEUSAGE 报告目录视图中的页数和行数错误并进行更正。
  DBCC UPDATEUSAGE 
    (     { ’database_name’ | database_id | 0 } 
     [ , { ’table_name’ | table_id | ’view_name’ | view_id } 
     [ , { ’index_name’ | index_id } ] ] 
    ) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ]
     ] 

三、DBBCC验证语句:对数据库、表、索引、目录、文件组或数据库页的分配进行的验证操作。
 DBCC CHECKALLOC。检查指定数据库的磁盘空间分配结构的一致性。 
  DBCC CHECKALLOC 
  [ 
  ( 
       [ ’database_name’ | database_id | 0 ] 
     [ , NOINDEX 
       | 
       { REPAIR_ALLOW_DATA_LOSS 
       | REPAIR_FAST 
       | REPAIR_REBUILD 
       } ] 
  )
  ]
       [ WITH { [ ALL_ERRORMSGS ]
         [ , NO_INFOMSGS ] 
         [ , TABLOCK ] 
         [ , ESTIMATEONLY ] 
       } 
       ] 

 DBCC CHECKFILEGROUP。检查当前数据库中指定文件组中的所有表的分配和结构完整性。
  DBCC CHECKFILEGROUP 
  [
  ( 
  [ { ’filegroup_name’ | filegroup_id | 0 } ]
  [ , NOINDEX ] 
  )
  ]
      [ WITH 
   { 
       [ ALL_ERRORMSGS ]
       [ NO_INFOMSGS ] ]
       [ , [ TABLOCK ] ] 
       [ , [ ESTIMATEONLY ] ] 
   } 
       ]
 DBCC CHECKCATALOG。检查指定数据库内的目录一致性。数据库必须联机。 
  DBCC CHECKCATALOG 
  [ 
   ( 
   ’database_name’ | database_id | 0
   )
  ]
      [ WITH NO_INFOMSGS ] 

 DBCC CHECKIDENT。 检查指定表的当前标识值,如有必要,则更改标识值。
  DBCC CHECKIDENT 
  ( 
  ’table_name’
      [ , {
      NORESEED | { RESEED [ , new_reseed_value ] }
   }
      ]
  )
  [ WITH NO_INFOMSGS ]

 DBCC CHECKCONSTRAINTS。 检查当前数据库中指定表上的指定约束或所有约束的完整性。
  DBCC CHECKCONSTRAINTS
  [ 
   ( 
   ’table_name’ | table_id | ’constraint_name’ | constraint_id 
   )
  ]
      [ WITH 
      { ALL_CONSTRAINTS | ALL_ERRORMSGS } [ , NO_INFOMSGS ] 
      ]

 DBCC CHECKTABLE。检查组成表或索引视图的所有页和结构的完整性。
  DBCC CHECKTABLE 
  (
   ’table_name’ | ’view_name’
      [ , NOINDEX 
      | index_id 
      | { REPAIR_ALLOW_DATA_LOSS 
      | REPAIR_FAST 
      | REPAIR_REBUILD } 
      ] 
  )
      [ WITH 
   { [ ALL_ERRORMSGS ]
     [ , [ NO_INFOMSGS ] ]
     [ , [ TABLOCK ] ] 
     [ , [ ESTIMATEONLY ] ] 
     [ , [ PHYSICAL_ONLY ] ] 
   }
      ]

 DBCC CHECKDB。检查指定数据库中所有对象的分配、结构和逻辑完整性。 
  DBCC CHECKDB 
  [
  ( 
   ’database_name’ | database_id | 0
      [ , NOINDEX 
      | { REPAIR_ALLOW_DATA_LOSS 
      | REPAIR_FAST 
      | REPAIR_REBUILD 
      } ] 
  )
  ]
      [ WITH         {
       [ ALL_ERRORMSGS ] 
       [ , [ NO_INFOMSGS ] ] 
       [ , [ TABLOCK ] ] 
       [ , [ ESTIMATEONLY ] ] 
       [ , [ PHYSICAL_ONLY ] ] | [ , [ DATA_PURITY ] ] 
   } 
      ]

四、DBBCC的信息语句

 DBCC SHOW_STATISTICS。显示指定表上的指定目标的当前分发统计信息。 
 DBCC INPUTBUFFER.显示从客户端发送到 Microsoft SQL Server 2005 实例的最后一个语句。DBCC INPUTBUFFER ( session_id [ , request_id ] ) [WITH NO_INFOMSGS ] 
 DBCC SHOWCONTIG.显示指定的表的数据和索引的碎片信息。 
  DBCC SHOWCONTIG 
  [ ( 
      { ’table_name’ | table_id | ’view_name’ | view_id } 
      [ , ’index_name’ | index_id ] 
  )] 
      [ WITH 
   { 
    [ , [ ALL_INDEXES ] ] 
    [ , [ TABLERESULTS ] ] 
    [ , [ FAST ] ]
    [ , [ ALL_LEVELS ] ] 
    [ NO_INFOMSGS ]
    }
      ]

 DBCC OPENTDBCC INPUTBUFFERRAN 如果在指定数据库内存在最早的活动事务和最早的分布式和非分布式复制事务,则显示与之有关的信息
  DBCC OPENTRAN 
  [ 
   ( [ ’database_name’ | database_id | 0 ] ) ]
      { [ WITH TABLERESULTS ]
        [ , [ NO_INFOMSGS ] ]
      }
  ]
 DBCC SQLPERF.提供有关如何在所有数据库中使用事务日志空间的统计信息。  
  DBCC SQLPERF ( LOGSPACE | ’sys.dm_os_latch_stats’ , CLEAR | ’sys.dm_os_wait_stats’ , CLEAR ) 
  [WITH NO_INFOMSGS ]
 DBCC OUTPUTBUFFER.以十六进制和 ASCII 格式返回指定 session_id 的当前输出缓冲区。DBCC OUTPUTBUFFER ( session_id [ , request_id ] )
 DBCC TRACESTATUS.显示跟踪标志的状态.DBCC TRACESTATUS ( [ [ trace# [ ,...n ] ] [ , ] [ -1 ] ] )
 DBCC PROCCACHE.以表格格式显示有关过程缓存的信息。DBCC PROCCACHE [ WITH NO_INFOMSGS ]
 DBCC USEROPTIONS 返回当前连接的活动(设置)的 SET 选项。DBCC USEROPTIONS


五、DBBCC的杂项语句:杂项任务,如启用跟踪标志或从内存中删除 DLL。

 DBCC HELP。返回指定的 DBCC 命令的语法信息。DBCC HELP ( ’dbcc_statement’ | @dbcc_statement_var | ’?’ )[ WITH NO_INFOMSGS ]
 DBCC dllname (FREE)。从内存中上载指定的扩展存储过程 DLL。DBCC dllname ( FREE ) [ WITH NO_INFOMSGS ]
 DBCC DBREPAIR 。禁用指定的跟踪标记。DBCC TRACEOFF ( trace# [ ,...n ] [ , -1 ] ) [ WITH NO_INFOMSGS ]
 DBCC TRACEON。启用指定的跟踪标记。DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ]

六、未公开的DBCC
 DBCC ERRLOG
 初始化SQL错误日志
 DBCC BUFFER
 显示缓冲区头部和页面信息
 DBCC FLUSHPROCINDB
 清楚数据库服务器内存中的某个数据库存储过程的缓存内容。
 DBCC DBINFO
 显示数据库结果信息
 DBCC DATABLE
 显示管理数据库的表信息
 DBC IND 
 查看某个索引使用的页面信息。
 DBCC REBULDLOG
 重建修复SQL数据库事物日志文件。
 DBCC LOG
 查看某个数据库的事务日志信息
 DBCC PAGE
 查看某个数据库数据也面信息
 DBCC PROCBUF
 显示过程缓冲池的缓冲区头和存储过程。
 DBCC PRTIPAGE
 查看某个索引页面的每行指向的页面号。
 DBCC PSS
 显示当前连接到SQLSERVER服务器的进程信息。
 DBCC RESOURCE
 显示服务器当前使用的资源情况。
 DBCC TAB
 查看数据页面的结构。 

joomy 發表在 痞客邦 留言(0) 人氣()

Sub Macro1()
'
' Macro1 Macro
' 將「|」轉為換行符號
'
Cells.Replace What:="|", Replacement:=Chr(10), lookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False

'
End Sub

joomy 發表在 痞客邦 留言(0) 人氣()

DUMP TRANSACTION [数据库名] WITH NO_LOG 
BACKUP LOG [数据库名] WITH NO_LOG 
DBCC SHRINKDATABASE([数据库名])

如何避免 SQL Server 資料庫的交易記錄檔超出預期大小

joomy 發表在 痞客邦 留言(0) 人氣()