SQLSERVER修复小知识
在与数据库打交道的工作中时常会碰到一些数据库的错误,这就涉及到了修复的过程,以下知识点都是从网上收集而来:
1、dbcc checkdb
这个命令恐怕是我们最常用的了,带检查和修复功能
语法格式:
DBCC CHECKDB
[
[ ( database_name | database_id | 0
[ , NOINDEX
| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
) ]
[ WITH
{
[ ALL_ERRORMSGS ]
[ , EXTENDED_LOGICAL_CHECKS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
[ , { PHYSICAL_ONLY | DATA_PURITY } ]
}
]
]
REPAIR_ALLOW_DATA_LOSS 该参数会尝试修复所有错误,但在修复的过程中会出现数据的丢失
REPAIR_FAST 该参数进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失 数据的危险。
REPAIR_REBUILD 该参数执行由 REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不 会有丢失数据的危险。
DBCC CHECKDB 对索引视图执行物理一致性检查。只用于向后兼容的 NOINDEX 选项也适用于索引视图上的任何辅助索引。
DBCC CHECKDB 是最安全的修复语句,因为它对最多的可能出现的各种错误进行标识和修复。如果只报告数据库中有分配错误,请执行带修复选项的 DBCC CHECKALLOC 以对这些错误进行修复。然而,若要确保正确修复所有错误(包括分配错误),请执行带修复选项的 DBCC CHECKDB,而不要执行带修复选项的 DBCC CHECKALLOC。
DBCC CHECKDB 对数据库中所有内容的完整性进行验证。如果当前正在执行或最近已执行 DBCC CHECKDB,则不需要运行 DBCC CHECKALLOC 或 DBCC CHECKTA
相关文档:
Create Procedure up_InsertData2
@ID INT
AS
BEGIN
Declare @Name NVARCHAR(30)
Declare @c1 NVARCHAR(30)
Declare @c2 NVARCHAR(30)
Declare @c3 NVARCHAR(30)
Declare @c4 NVARCHAR(30)
Declare tmpCur Cursor For Select a,b,c,d from table1
Open tmpCur;
Fetch Next from tmpCur Into @c1,@c2,@c3 ......
CREATE function fGetPy(@str varchar(500)='')
returns varchar(500)
as
begin
declare @strlen int,@return varchar(500),@ii int
declare @c nchar(1),@chn nchar(1)
select @strlen=len(@str),@retur ......
if exists (select * from dbo.sysobjects where name='SplitStr' )
drop FUNCTION SplitStr
go
CREATE FUNCTION SplitStr (@splitString varchar(8000), @separate varchar(10))
RETURNS @returnTable ......
触发器的创建及使用(sqlserver 2005)
创建 DML 或 DDL 触发器。触发器是数据库服务器中发生事件时自动执行的特种存储过程。如果用户要通过数据操作语言 (DML) 事件编辑数据,则执行 DML 触发器。DML 事件是针对表或视图的 INSERT、UPDATE 或 DELETE 语句。DDL 触发器用于响应各种数据定义语言 (DDL) 事件。这些主要是 CRE ......
1、创建数据库testdb
2、创建表test
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[test](
[id] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[name] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[sex] [bit] NULL
) ON [PRIMARY]
3、创建数据库db
......