博客园 联系 订阅 订阅 管理  

Blog Stats

News

随笔档案

heartstill

2012年5月28日 #

ks.split.asp文件无法显示,提示:错误代码: 500 Internal Server Error。The request was rejected by the HTTP filter

在转移服务器时,有一个站点是网络硬盘,其间发现一个问题,错误提示为:

错误代码: 500 Internal Server Error。The request was rejected by the HTTP filter. Contact the server administrator. (12217)

显示是url被ISA防火墙过滤了,注意了一下,用了以下内个方法:

方法 1:

ISA 2004 console > Configuration > Add-Ins > Web Filters tab > properties
of compression Filter > select Enable this filer. > Ok > Apply.

方法 2:

取消验证正则化
如果URL有高位字符请求,同样要取消选框
把HTTP过滤器禁用了试试

详情请见:
http://www.microsoft.com/china/technet/prodtechnol/isa/2004/plan/httpfiltering.mspx

方法 3:
1. Start the ISA Server Management tool.
2. Expand ServerName, where ServerName is the name of your ISA Server computer.
3. Click Firewall Policy, click the Web publishing rule that you created , and then click Edit Selected Rule.
4. Click the Traffic tab, click Filtering, and then click Configure HTTP.
5. Click to clear the Block high-bit characters check box, and then click OK two times.
6. Click Apply to update the firewall policy, and then click OK.
其实上面解决的问题就是,通过ISA发布网站之后,Web地址里不能转发高位字符的问题。默认是被ISA给Block掉了!

按照上面的方法,大部份问题解决掉了,还有一个问题,那就是当下载文件名中含.exe扩展名时,还是会出现这种错误,很明显,.exe被block掉了,仔细看了一下,HTTP策略,发现在常规标签中有一个:阻止包含windows可执行文件内容的响应 复选框,取消即问题解决!

posted @ 2012-05-28 10:50 开始测试 阅读(1) 评论(0) 编辑

2012年5月27日 #

设置数据库兼容级别的两种方法

分类: 数据库管理维护 原创与心得 2010-06-26 19:19 951人阅读 评论(3) 收藏 举报

--设置数据库兼容级别的两种方法

--以设置兼容SQL Serve 2005 为例

--法一:

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 90

GO

--法二:

EXEC sp_dbcmptlevel database_name,90

GO

database_name

要修改为数据库的名称。

各参数值对应的数据库版本:

80 = SQL Server 2000

90 = SQL Server 2005

100 = SQL Server 2008

如果在用户连接到数据库时更改兼容级别可能会使活动查询产生不正确的结果集例如如果在编写查询计划时兼容级别发生更改则编写后的计划可能同时基于旧的和新的兼容级别从而造成计划不正确并可能导致结果不准确此外如果将计划放在计划缓存中供后续的查询重用则问题可能更加复杂为了避免查询结果不准确建议您使用以下过程来更改数据库的兼容级别

1.通过使用 ALTER DATABASE SET SINGLE_USER将数据库设置为单用户访问模式

2.通过上述两种方法更改数据库的兼容级别

3.通过使用 ALTER DATABASE SET MULTI_USER将数据库设为多用户访问模式

 

兼容级别 80 和兼容级别 90 之间的差异

本节介绍随兼容级别 90 引入的新行为。

使用兼容级别 90 时,行为将发生下列变化。

兼容级别设置为 80 兼容级别设置为 90 影响的可能性

对于 FROM 子句中的锁提示,WITH 关键字始终是可选的。

但在一些例外情况中,仅当用 WITH 关键字指定表提示时,FROM 子句中才支持这些提示。有关详细信息,请参阅 FROM (Transact-SQL)。

支持在警告消息中使用外部联接运算符 *= 和 =*。

不支持使用这两个运算符;应使用 OUTER JOIN 关键字。

在将 ORDER BY 列表中的列引用绑定到在 SELECT 列表中定义的列时,将忽略列的多义性,有时还会忽略列前缀。这可以导致以意外顺序返回结果集。

例如,包含有一个两部分列 (<table_alias>.<column>) 的 ORDER BY 子句可以用作对 SELECT 列表中的列的引用,但会忽略表的别名。请考虑下面的查询。

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

执行时,将忽略 ORDER BY 中的列前缀。排序操作对指定的源列 (x.c1) 不按预期方式执行,而是对在查询中定义的派生 c1 列执行。此查询的执行计划将显示:首先计算派生列的值,然后对计算得到的值进行排序。

如果存在列的多义性,则将引发错误。在绑定到 SELECT 列表中所定义的列时,不忽略在 ORDER BY 中指定的列前缀(如果有)。

请考虑下面的查询。

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

执行时,不忽略 ORDER BY 子句中的列前缀。排序操作对指定的源列 (x.c1) 按预期方式执行。此查询的执行计划将显示排序运算符对从 t_table 返回的行排序,然后再对在 SELECT 列表中定义的派生列 c1 的值排序。

在 INSERT SELECT 中,如果 UNION 属于不同的数据类型,则每个 UNION 分支都直接转换为 INSERT 目标列的类型。即使本身所使用的联合可能会因不兼容的类型转换而失败,INSERT SELECT 也会使 UNION 成功执行,因为 UNION 的结果类型的分支从不进行转换。

UNION 的结果类型是独立于 INSERT SELECT 而派生的。UNION 的每一分支都转换为 UNION 的结果类型,然后转换为 INSERT 的目标列类型。如果 UNION 中有不兼容类型,则第一个转换可能会导致错误。若要以兼容级别 90 运行,则必须修复在 INSERT SELECT 中使用的所有不兼容类型的联合。

当视图或被引用视图使用 TOP 子句时,指定了 WITH CHECK OPTION 子句的视图中无法正确支持通过视图进行插入和更新操作。

当视图或被引用视图使用 TOP 子句时,使用 WITH CHECK OPTION 的视图中不支持通过视图进行插入和更新操作。

可变长度列和固定长度列的 UNION 将生成一个固定长度列。

可变长度列和固定长度列的 UNION 将生成一个可变长度列。

允许在触发器中使用 SET XACT_ABORT OFF。

不允许在触发器中使用 SET XACT_ABORT OFF。

允许在视图中使用(并忽略)FOR BROWSE 子句。

不允许在视图中使用 FOR BROWSE 子句。

ANSI_WARNINGS 不控制域错误。如果 ANSI_WARNINGS 设置为 OFF 并且 ARITHABORT 没有更改,则遵守 ARITHABORT 设置。

域错误由 ANSI_WARNINGS 控制,并且是严重级别为 16 的错误。如果 ANSI_WARNINGS 或 ARITHABORT 为 ON,则将引发错误,而不是返回 NULL 值。此更改可能会破坏依赖于设置为 OFF 的 ARITHABORT 的用户脚本。

如果对远程数据源(OpenRowsetOpenQuery)所执行的直接传递查询生成名称重复的列,则除非在该查询中显式命名了这些列,否则将忽略重复的列名。

如果对远程数据源(OpenRowsetOpenQuery)所执行的直接传递查询生成列名重复的列,将引发错误。

大小大于 8000 的字符串常量和 varbinary 常量被视为 textntextimage

大小大于 8000 的字符串常量和 varbinary 常量被视为 varchar(max) 类型(或分别被视为 nvarchar(max)varbinary(max))。如果 SELECT 列表包含此类表达式,则这样可以更改使用 SELECT … INTO 创建的表的数据类型。

通过将类型层次结构中优先级较低的比较数转换为优先级较高的类型,从而在各数值类型(smallinttinyintintbigintnumericdecimalsmallmoneymoney)之间进行比较。

数值类型值不经转换便进行比较。这有助于提高性能。但这可能会导致行为发生某些更改,尤其是在转换导致溢出异常的情况下。

使用字符串参数的内置元数据函数在其输入长度大于 4000 个字符的情况下,将截断该输入。

如果截断导致丢失非空格字符,则内置元数据函数会引发错误。

未加引号的标识符中被禁用的字符集保持不变。

Transact-SQL 分析器支持 Unicode 3.2 标准,该标准更改了目前禁止在未分隔标识符中使用的一些国际字符的字符分类。

在出现浮点域错误(即 log() 函数的参数为负)时,SET ANSI_WARNINGS ON 不覆盖 SET ARITHABORT OFF 的设置。如果 ANSI_WARNINGS 为 ON 但 ARITHABORT 为 OFF,则浮点域错误不会导致查询终止。

SET ANSI_WARNINGS ON 完全覆盖 ARITHABORT OFF 设置。在这种情况下,浮点域错误将导致查询终止。

允许在 ORDER BY 子句中使用(并忽略)非整数常量。

不允许在 ORDER BY 子句使用非整数常量。

允许使用空的 SET 语句(未指定 SET 选项)。

不允许使用空的 SET 子句。

没有为派生表所生成的列正确派生 IDENTITY 属性。

为派生表所生成的列正确派生了 IDENTITY 属性。

对浮点数据类型执行运算的算术运算符的可为 Null 性属性始终可以为 Null。

在输入不可为 Null 并且 ANSI_WARNINGS 为 ON 的情况下,对浮点数据类型执行运算的算术运算符的可为 Null 性属性将更改为不可为 Null。

在使用 UNION 组合的 INSERT ..SELECT 语句中,由各个结果集生成的类型都将转换为目标结果类型。

在使用 UNION 组合的 INSERT ..SELECT 语句中,确定各分支的主要类型,并在将结果转换为目标表类型之前将其转换为该类型。

在 SELECT ..FOR XML 语句中,始终实体化 hex(27)(' 字符)和 hex(22)(" 字符),即使在不需要的情况下也是如此。

FOR XML 只在需要时才实体化 hex(27) 和 hex(22)。在下列情况下不实体化这些字符:

  • 在属性内容中,如果属性值以 " 分隔,则不实体化 hex(27)(' 字符);如果属性值以 ' 分隔,则不实体化 hex(22)(" 字符)。
  • 在元素内容中,从不实体化 hex(27) 和 hex(22)。

在 FOR XML 中,时间戳值映射为整数。

在 FOR XML 中,时间戳值映射为二进制值。

有关详细信息,请参阅 timestamp 数据类型的 FOR XML 支持。

如果使用 timestamp 列,则为高;否则为低

在 FOR XML 和 OPENXML 中,名称中大范围 Unicode 字符(3 字节)使用 8 位表示。

例如,FOR XML 用 8 位表示 Unicode 码位 U+10000 的方式如下:

<a_x00010000_ c1="1" />

在 FOR XML 和 OPENXML 中,名称中大范围 Unicode 字符(3 字节)使用 6 位表示。

例如,FOR XML 用 6 位表示 Unicode 码位 U+10000 的方式如下:

<a_x010000_ c1="1" />

在 FOR XML 中,使用 AUTO 模式的派生表映射被视为是透明的。

例如:

复制代码
USE AdventureWorks
CREATE TABLE Test(id int);
INSERT INTO Test VALUES(1);
INSERT INTO Test VALUES(2);
SELECT * FROM (SELECT a.id AS a, 
b.id AS b FROM Test a 
JOIN Test b ON a.id=b.id) 
Test FOR XML AUTO;

如果 AdventureWorks 的兼容级别设置为 80,则以上示例将生成:

<a a="1"><b b="1"/></a>

<a a="2"><b b="2"/></a>

在 FOR XML 中,使用 AUTO 模式的派生表映射被视为是不透明的。

如果 AdventureWorks 的兼容级别设置为 90,则以上示例将生成:

<Test a="1" b="1"/>

<Test a="2" b="2"/>

如果对视图应用 FOR XML AUTO 模式,则为高;否则为低

仅在日语和朝鲜语中,字符串到 money 的转换才支持使用反斜杠字符 (/) 作为货币符号。

在所有语言中,所有字符串到 money 的转换中都接受反斜杠字符 (/)。当 / 用作货币符号时,ISNUMERIC 将返回 True。

对于 SQL Server 2005 之前的 SQL Server 版本上的数据库,这一新行为会拆分依赖于包含 / 的 ISNUMERIC 返回值并且所使用的语言既不是日语也不是朝鲜语的索引和计算列。

即使操作数不可为 Null 并且 ANSI_WARNINGS 或 ARITHABORT 设置为 ON,算术运算符的结果也始终可为 Null。

在 ANSI_WARNINGS 或 ARITHABORT 设置为 ON 时,如果两个操作数都不可为 Null,则浮点算术运算符的结果也不可为 Null。

在以下情况中,这种为空性的更改可能导致错误:使用 bcp 从包含计算列(该计算列使用浮点算术运算符)的 SQL Server 2000 表中大容量导出二进制格式的数据,然后使用 bcp 或 BULK INSERT 将这些数据大容量导入包含同一定义的 SQL Server 2005 表。

注意:
当两个选项均为 OFF 时,数据库引擎 将把结果标记为可以为 Null。这与 SQL Server 2000 中相同。

 

对于以 nvarchar 作为参数的内置函数,如果所提供的值为 varchar,则该值将转换为 nvarchar(4000)。在 SQL Server 2000 中,如果传递较大值,则该值将自行截断。

对于以 nvarchar 作为参数的内置函数,即使所提供的值为 varchar,该值仍将转换为 nvarchar(4000)。但如果传递较大值,SQL Server 2008 将生成错误。

若要以兼容级别 90 运行,必须修复依赖于截断行为的所有自定义代码。

固定长度(charbinarynchar)字符串与可变长度(varcharvarbinarynvarchar)字符串的联合返回固定长度的结果。

可变大小字符串和固定大小字符串的联合返回可变大小字符串。

若要以兼容级别 90 运行,那么对于任何地方(索引、查询和计算列),只要它依赖与将可变大小类型和固定大小类型求并集得到的类型,就必须修复。

包含字符 0xFFFF 的对象名是有效标识符。

包含字符 0xFFFF 的对象名是无效标识符,不能访问。

若要以兼容级别 90 运行,必须重命名包含此字符的对象。

在 SELECT ISNUMERIC('<string>') 中,<string> 内嵌入的逗号非常重要。

例如,以下 SELECT ISNUMERIC('121212,12') 查询返回 0。这指示字符串 121212,12 不是数字。

在 SELECT ISNUMERIC('<string>') 中,<string> 内嵌入的逗号可以忽略。

例如,以下 SELECT ISNUMERIC('121212,12') 查询返回 1。这指示字符串 121212,12 是数字。

忽略了 Transact-SQL 语句中保留关键字后面的冒号 (:)。

Transact-SQL 语句中保留关键字后面的冒号 (:) 将导致语句失败。

引用外部查询中的列的子查询中的 GROUP BY 子句成功。

按照 SQL 标准,引用外部查询中的列的子查询中的 GROUP BY 子句返回错误。

较低兼容级别和级别 100 之间的差异

本节介绍随兼容级别 100 引入的新行为。

兼容级别设置为 90 或更低 兼容级别设置为 100 影响的可能性

对于多语句表值函数,在创建它们时,无论会话级别设置如何,QUOTED_IDENTIFER 设置始终为 ON。

在创建多语句表值函数时,会遵循 QUOTED IDENTIFIER 会话设置。

在创建或更改分区函数时,会评估函数中的 datetimesmalldatetime 文字,并假定语言设置为 US_English。

使用当前语言设置来评估该分区函数中的 datetimesmalldatetime 文字。

INSERT 和 SELECT INTO 语句中允许使用(但会忽略)FOR BROWSE 子句。

INSERT 和 SELECT INTO 语句中不允许使用 FOR BROWSE 子句。

OUTPUT 子句中允许使用全文谓词。

OUTPUT 子句中不允许使用全文谓词。

不支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。系统非索引字表自动与新的全文索引相关联。

支持 CREATE FULLTEXT STOPLIST、ALTER FULLTEXT STOPLIST 和 DROP FULLTEXT STOPLIST。

MERGE 不作为保留关键字强制应用。

MERGE 是完全保留的关键字。在 100 和 90 兼容级别下,都支持 MERGE 语句。

使用 INSERT 语句的 <dml_table_source> 参数会引发语法错误。

您可以捕获嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句中 OUTPUT 子句的结果,然后将这些结果插入目标表或视图。这通过使用 INSERT 语句的 <dml_table_source> 参数来实现。

除非指定 NOINDEX,否则 DBCC CHECKDB 或 DBCC CHECKTABLE 将对单个表或索引视图及其所有非聚集索引和 XML 索引同时执行物理和逻辑一致性检查。不支持空间索引。

除非指定 NOINDEX,否则 DBCC CHECKDB 或 DBCC CHECKTABLE 将对单个表及其所有非聚集索引同时执行物理和逻辑一致性检查。但是,在默认情况下,仅对 XML 索引、空间索引和索引视图执行物理一致性检查。

如果指定了 WITH EXTENDED_LOGICAL_CHECKS,则将对索引视图、XML 索引和空间索引(如果存在)执行逻辑检查。默认情况下,先执行物理一致性检查,然后执行逻辑一致性检查。如果还指定了 NOINDEX,则仅执行逻辑检查。

如果将 OUTPUT 子句和数据操作语言 (DML) 语句一起使用,并且在语句执行过程中发生运行时错误,则会终止并回滚整个事务。

如果将 OUTPUT 子句和数据操作语言 (DML) 语句一起使用,并且在语句执行过程中发生运行时错误,则行为取决于 SET XACT_ABORT 设置。如果 SET XACT_ABORT 设置为 OFF,则由使用 OUTPUT 子句的 DML 语句所生成的语句中止错误将终止该语句,但批处理的执行仍会继续,并且不会回滚事务。如果 SET XACT_ABORT 设置为 ON,则由使用 OUTPUT 子句的 DML 语句所生成的全部运行时错误都将终止批处理,并回滚事务。

CUBE 和 ROLLUP 不作为保留关键字强制应用。

CUBE 和 ROLLUP 是 GROUP BY 子句中的保留关键字。

对 XML anyType 类型的元素应用严格验证。

对 XML anyType 类型的元素应用宽松验证。有关详细信息,请参阅通配符组成部分和内容验证。

数据操作语言语句不能查询或修改特殊属性 xsi:nilxsi:type

这意味着 /e/@xsi:nil 失败,同时 /e/@* 忽略 xsi:nilxsi:type 属性。但是,/e 返回 xsi:nilxsi:type 属性,以保持与 SELECT xmlCol 的一致性,即使 xsi:nil = "false" 也是如此。

特殊属性 xsi:nilxsi:type 作为常规属性存储,不能查询和修改。

例如,执行查询 SELECT x.query('a/b/@*') 会返回包括 xsi: nilxsi: type 在内的所有属性。若要在查询中排除这些类型,请用 @*[namespace-uri(.) != "insert xsi namespace uri" 替换 @*,而不是用 (local-name(.) = "type"local-name(.) ="nil" 来替换。

用于将 XML 常量字符串值转换为 SQL Server datetime 类型的用户定义函数被标记为确定的。

用于将 XML 常量字符串值转换为 SQL Server datetime 类型的用户定义函数被标记为不确定的。

不完全支持 XML 联合和列表类型。

完全支持联合和列表类型,包括以下功能:

  • 列表的联合
  • 联合的联合
  • 原子类型的列表
  • 联合的列表

当视图或内联表值函数中包含 xQuery 方法时,不对该方法所需的 SET 选项进行验证。

当视图或内联表值函数中包含 xQuery 方法时,对该方法所需的 SET 选项进行验证。如果该方法的 SET 选项设置不正确,将引发一个错误。

有关所需选项设置的详细信息,请参阅设置选项(XML 数据类型)。

包含行尾字符(回车符和换行符)的 XML 属性值不根据 XML 标准进行规范化。即返回回车符和换行符,而不是单个换行符。

包含行尾字符(回车符和换行符)的 XML 属性值会根据 XML 标准进行规范化。也就是说,外部已分析实体(包括文档实体)中的所有换行符都会在输入时进行规范化,方法是将两字符序列 #xD #xA 和后面没有跟 #xA 的所有 #xD 都转换为单个 #xA 字符。

使用属性来传输包含行尾字符的字符串值的应用程序接收到的这些字符将和提交时有所不同。若要避免规范化过程,请使用 XML 数字字符实体对所有行尾字符进行编码。

ROWGUIDCOL 和 IDENTITY 列属性可能错误地命名为约束。例如,CREATE TABLE T (C1 int CONSTRAINT MyConstraint IDENTITY) 语句可以执行,但约束名不会保留,也无法让用户访问。

ROWGUIDCOL 和 IDENTITY 列属性不能命名为约束。返回错误 156。

使用双向赋值(如 UPDATE T1 SET @v = column_name = <expression>)来更新列会产生意外后果,因为在语句执行过程中,可以在其他子句(如 WHERE 和 ON 子句)中使用变量的实时值,而不是使用语句起始值。这会导致谓词的含义无法预测地逐行变化。

只有在兼容级别设置为 90 时,此行为才适用。

使用双向赋值来更新列会产生预期的结果,因为在语句执行过程中,只会访问列的语句起始值。

在包含顶级 UNION 运算符的语句中,允许使用变量赋值,但会返回意外的结果。例如,在以下语句中,将来自两个表的联合的 EmployeeID 列的值赋给局部变量 @v。按照定义,如果 SELECT 语句返回多个值,则将返回的最后一个值赋给变量。在这种情况下,会正确地将最后一个值赋给变量,但还会返回 SELECT UNION 语句的结果集。

复制代码
ALTER DATABASE AdventureWorks
SET compatibility_level = 90;
GO
USE AdventureWorks;
GO
DECLARE @v int;
SELECT @v = EmployeeID FROM HumanResources.Employee
UNION ALL
SELECT @v = EmployeeID FROM HumanResources.EmployeeAddress;
SELECT @v;

在包含顶级 UNION 运算符的语句中不允许变量赋值。返回错误 10734。

若要纠正该错误,请重写查询,如下例所示。

复制代码
DECLARE @v int;
SELECT @v = EmployeeID FROM 
    (SELECT EmployeeID FROM HumanResources.Employee
     UNION ALL
     SELECT EmployeeID FROM HumanResources.EmployeeAddress) AS Test
SELECT @v;

ODBC 函数 {fn CONVERT()} 使用语言的默认日期格式。对于有些语言,默认格式为 YDM,这会导致在将 CONVERT() 与要求使用 YMD 格式的其他函数(如 {fn CURDATE()})结合使用时出现转换错误。

在转换为 ODBC 数据类型 SQL_TIMESTAMP、SQL_DATE、SQL_TIME、SQLDATE、SQL_TYPE_TIME 和 SQL_TYPE_TIMESTAMP 时,ODBC 函数 {fn CONVERT()} 使用样式 121(一种独立于语言的 YMD 格式)。

ODBC 函数 {fn CURDATE()} 仅返回“YYYY-MM-DD”格式的日期。

ODBC 函数 {fn CURDATE()} 同时返回日期和时间,例如“YYYY-MM-DD hh:mm:ss”。

日期时间内部函数(如 DATEPART)不需要字符串输入值,即可成为有效的日期时间文字。例如,SELECT DATEPART (year, '2007/05-30') 可以成功编译。

日期时间内部函数(如 DATEPART)需要字符串输入值,才能成为有效的日期时间文字。在使用无效的日期时间文字时,会返回错误 241。

保留关键字

兼容性设置还确定了数据库引擎所保留的关键字。下表显示了每个兼容级别所引入的保留关键字。

兼容级别设置 保留关键字

100

CUBE、MERGE、ROLLUP

90

EXTERNAL、PIVOT、UNPIVOT、REVERT、TABLESAMPLE

80

COLLATE、FUNCTION、OPENXML

在给定兼容级别,保留关键字包括在该级别或较低级别引入的所有关键字。例如,对于兼容级别为 100 的应用程序,将保留上表列出的所有关键字。在较低的兼容级别中,级别 100 的关键字仍保留有效的对象名,但与这些关键字相对应的级别 100 的语言功能将不可用。

一旦引入,关键字便会保持为保留关键字。例如,在兼容级别 80 中引入的保留关键字 OPENXML 在级别 90 和 100 中也被保留。

如果某一应用程序使用对其保留级别而言是关键字的标识符,则该应用程序将失败。若要解决这一问题,请用方括号 ([ ]) 或引号 (" ") 括起该标识符;例如,若要将使用标识符 EXTERNAL 的应用程序升级为兼容级别 90,可以将该标识符更改为 [EXTERNAL]"EXTERNAL"

posted @ 2012-05-27 23:47 开始测试 阅读(84) 评论(0) 编辑

2012年5月24日 #

错误:媒体集有2媒体但只提供了1

分类: 数据库开发 286人阅读 评论(0) 收藏 举报

 

今天在还原数据库的时候报出一错误:媒体集有2媒体但只提供了1 ..... 很纳闷,上网查了资料,恍然大悟,原来是将数据库备份到了2bak文件中。。我一直认为 ,若选中哪bak,则备份到哪,原来我错了。

 

转:

(一)该现象的原因 由于在备份数据库的时候,多添加了一*.bak文件(这样你就将数据库“分段”备份到了2数据库*.bak文件中了)如下图所示!而在你还原的时候,你只用了其中的一*.bak文件还原。这样当然会出错。比如你买了烧饼,你分给了你同学了一半,而你又想只用你的那一半烧饼还原成整烧饼一样,当然是不可能的。

(二)解决办法 正如上面所说的,需要把分割的烧饼还原,就得把你同学的那份烧饼要回来,然后一起拼接还原了!就需要把2bak文件一起还原了,或者,你干脆就在开始的时候别把烧饼给分了!自己一人占有!所以我们有两方法解决这办法

(1)在做备份的时候,只用一*.bak文件备份 (可在‘选项’中 添加新的媒体集,将之前的媒体集删掉)

错误:媒体集有2个媒体簇,但只提供了1个 - 三月鸟的日志 - 网易博客 - bailkai - good luck guy

2)如果已经备份分割了两块,你同时添加可以将2bak做还原。如图所示

错误:媒体集有2个媒体簇,但只提供了1个 - 三月鸟的日志 - 网易博客 - bailkai - good luck guy

(三)后续的问题,在后来的拼接还原中出现了“还原对于服务器XXX失败”的问题 请在选项卡中勾选“覆盖现有数据库” 即解决此后续问题。

错误:媒体集有2个媒体簇,但只提供了1个 - 三月鸟的日志 - 网易博客 - bailkai - good luck guy

posted @ 2012-05-24 22:26 开始测试 阅读(5) 评论(0) 编辑

2012年5月17日 #

VSS 2005 添加文件夹
2008年11月25日 星期二 12:00
刚开始玩VSS 2005,遇到一个低级的问题:如何在VSS中添加一个文件夹到VSS库中?

三个办法(本人用的最简单的方法,另外两个没试):

简单的方法:
从资源管理器中直接把要添加的文件或目录,拖进VSS客户端对应的目录下就可以了。

复杂的方法:
VSS----file----add files 后的对话框,左侧是文件,右侧是目录树,双击要添加的目录,使其图标同被打开的文件夹,再add。

最后的方法:在VS2005开发环境进行绑定,然后直接在VS2005开发环境中加入文件或者新建文件夹,这样会自动添加到VSS中去。
posted @ 2012-05-17 23:18 开始测试 阅读(27) 评论(0) 编辑

2012年5月10日 #

强制将IE8设置为IE7兼容模式来解析网页
2009-08-06 14:24

英文原文:http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

文件兼容性用于定义让IE如何编译你的网页。此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式。


前言

为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性。在IE6中引入一个增设的兼容性模式,文件兼容性使你能够在IE呈现你的网页时选择特定编译模式。
新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了文件兼容性。当你引入一个增设的兼容性模式,
此文章说明文件兼容性的必要性,列出现有版本IE能使用的文件兼容性模式并示范如何选择特定的兼容性模式。


了解文件兼容性的必要性

每个主要版本IE新增的功能都是为了让浏览器更容易使用、增加安全性及更支持业界标准。以这些作为IE的特色,其中一个风险就是旧版本网站无法正确的显示。

为了将这个风险降到最低,IE6允许网页开发人员选择IE编译和显示他们网页的方式。"Quirks mode"为预设,这会使页面以旧版本浏览器的视点显示,"Standards mode"(也称为"strict mode")特点是支持业界标准最为完善。然而要利用这个增强的支持功能,网页必须包含恰当的<!DOCTYPE>指令。

若一个网页没有包含<!DOCTYPE>指令,IE6会将它以quirks mode显示。若网页包含有效的<!DOCTYPE>指令但浏览器无法辨识,IE6会将它以IE6 standards mode显示。因为少数网站已经包含<!DOCTYPE>指令,兼容性模式的切换相当成功。这使网页开发人员能选择将他们的网页转移为standards mode的最佳时机。

随著时间经过,更多网站开始使用standards mode。它们也开始使用IE6的特性和功能来检测IE。举例来说,IE6不支持universal selector(即css之全局选择器 * {}),一些网站便使用它来针对IE做特定的对应。

当 IE7增加了对全域选择器的支持,那些依赖IE6特点的网站便无法侦测出这个新版本的浏览器。因此那些针对IE的特定对应无法应用于IE7,造成这些网站便无法如他们预期的显示。由于<!DOCTYPE>只支持两种兼容性模式,受到影响的网站拥有者被迫更新他们的网站使其能支持IE7。

IE8 比之前的任何版本浏览器都更支持业界标准,因此针对旧版本浏览器设计的网页可能无法如预期般呈现。为了帮助减轻所有问题,IE8引入文件兼容性的概念,使 你能选择你的网页设计要对应的特定IE版本。文件兼容性在IE8增加了一些新的模式,这些模式能告诉浏览器如何解析和编译一个网页。若你的网页无法在 ie8正确的显示,你可以更新你的网站使它支持最新的网页标准(优先选项)或在你的页面上新增一个meta元素用于告诉IE8如何依照旧版本浏览器编译你的页面。

这能让你选择将你的网站更新支持IE8新特点的时机。


认识文件兼容性模式

IE8支持几种文件兼容性模式,它们具有不同的特性并影响内容显示的方式。

•Emulate IE8 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE8 Standards mode而quirks mode会显示成IE5 mode。不同于IE8 mode,Emulate IE8 mode重视<!DOCTYPE>指令。
•Emulate IE7 mode指示IE使用<!DOCTYPE>指令来决定如何编译内容。Standards mode指令会显示成IE7 Standards mode而quirks mode会显示成IE5 mode。不同于IE7 mode,Emulate IE7 mode重视<!DOCTYPE>指令。对于许多网页来说这是最推荐的兼容性模式。
•IE5 mode 编译内容如同IE7的quirks mode之显示状况,和IE5中显示的非常类似。
•IE7 mode编译内容如同IE7的standards mode之显示状况,无论网页是否含有<!DOCTYPE>指令。
•IE8 mode提供对业界标准的最高支持,包含 W3C Cascading Style Sheets Level 2.1 SpecificationW3C Selectors API,并有限的支持 W3C Cascading Style Sheets Level 3 Specification (Working Draft)
•Edge mode指示IE以目前可用的最高模式显示内容。当使用IE8时其等同于IE8 mode。若(假定)未来放出支持更高兼容性模式的IE,使用Edge mode的页面会使用该版本能支持的最高模式来显示内容。同样的那些页面在使用IE8浏览时仍会照常显示。

由于edge mode使用该IE版本所能支持的最高模式来显示所浏览的网页内容,建议仅使用于测试页及其他非商用页面。


指定文件兼容性模式

要为你的网页指定文件模式,需要在你的网页中使用meta元素放入X-UA-Compatible http-equiv 标头。以下是指定为Emulate IE7 mode 兼容性之范例。

 

<html>
<head>
<!-- Mimic Internet Explorer 7 -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>My Web Page</title>
</head>
<body>
<p>Content goes here.</p>
</body>
</html>


其内容随著指定的页面模式而更改,当要模拟IE7时,指定IE=EmulateIE7,指定IE=5, IE=7, 或IE=8来选择其中一种兼容性模式。你也可以指定IE=edge来指示IE8使用它支持的最高模式。

X-UA-compatible标头没有大小写之分。然而除了title元素及其他的meta元素之外,它必须出现在网页header节其它元素之前的位置,


设定网站服务器以指定预设兼容性模式

网站管理员可籍着为网站定义一个自订标头来为他们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。举例来说,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。

 

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EmulateIE7" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>


若你已于网站服务器指定了一个预设的文件兼容性模式,你可以在个别页面上指定不同的文件兼容性模式来盖过它。在网页中指定的模式优先权高于服务器中所指定的模式。

请查阅你的网站服务器关于指定自订标头的资讯,或看更多资料:

Implementing the META Switch on Apache
Implementing the META Switch on IIS


判定文件兼容性模式

要判定网页使用IE8浏览时的文件兼容性模式,使用document object(文档对象)的documentMode功能。例如在IE8的网址列输入下列程式码会显示目前页面的文件模式。

javascript:alert(document.documentMode);

 

documentMode功能会回传一个数值对应目前页面的文件兼容性模式,举例来说,若网页指定为支持IE8模式,documentMode便会回传值"8"。

在IE6引入的compatMode功能不支持在IE8引入的documentMode功能。目前使用compatMode建立的应用程式还能在IE8中作用,但它们必须更新为使用documentMode。

若你希望使用JavaScript判定一个文件的兼容性模式,引入下面范例的这段程式码可支持旧版本的IE。

 

engine = null;
if (window.navigator.appName == "Microsoft Internet Explorer")
{
// This is an IE browser. What mode is the engine in?
if (document.documentMode) // IE8
engine = document.documentMode;
else // IE 5-7
{
engine
= 5; // Assume quirks mode unless proven otherwise
if (document.compatMode)
{
if (document.compatMode == "CSS1Compat")
engine
= 7; // standards mode
}
}
// the engine variable now contains the document compatibility mode.
}

 

 

认识内容属性值

内容属性值在接收到异于先前叙述的数值时是具有弹性的。这能使你对于IE如何显示你的网页更有操控性。举例来说,你可以设定内容属性值为IE=7.5。当你这样做的时候,IE尝试将这个值转换为version vector并选择最接近的结果。在这个例子中,IE会将其设定为IE7 mode。下面的范例显示该模式设定为其他值的状况。

 

<meta http-equiv="X-UA-Compatible" content="IE=4"> <!-- IE5 mode -->
<meta http-equiv="X-UA-Compatible" content="IE=7.5"> <!-- IE7 mode -->
<meta http-equiv="X-UA-Compatible" content="IE=100"> <!-- IE8 mode -->
<meta http-equiv="X-UA-Compatible" content="IE=a"> <!-- IE5 mode -->

<!-- This header mimics Internet Explorer 7 and uses
<!DOCTYPE> to determine how to display the Web page
-->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

注意: 前面的范例显示单独的内容值。实际上IE只会执行网页中第一个X-UA-Compatible标头。

你也可以使用内容属性来指定复数的文件兼容性模式,这能帮助确保你的网页在未来的浏览器版本都能一致的显示。欲设定复数的文件模式,请设定内容属性以判别你想使用的模式。使用分号来分开各个模式。

如果一个特定版本的IE支持所要求的兼容性模式多于一种,将採用列于标头内容属性中最高的可用模式。你可以使用这个特性来排除特定的兼容性模式,虽然并不推荐这样做。举例来说,下列标头即会排除IE7 mode。

<meta http-equiv="X-UA-Compatible" content="IE=5; IE=8" />

 

 

结论

兼容性对于网页设计师来说是非常重要的顾虑。虽然最好是可以建立一个完全不需依赖任何网页浏览器特性或功能的网站,有时候这是不可能实现的。文件兼容性模式便能将网页限制在某个特定版本的IE中。

使用X-UA-Compatible标头来指定你的页面支持的IE版本。使用document.documentMode判定页面的兼容性模式。

选择支持某个特定版本的IE,你可以确保你的页面在未来的浏览器版本中也能有显示的一致
posted @ 2012-05-10 22:47 开始测试 阅读(104) 评论(2) 编辑

Win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”
2012-01-31 0:42

 

Win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”问题解决

问题描述:

删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”是我们经常遇到的状况,我们需要关闭正在使用改文件的进程之后才能正常删除该文件或文件夹,不过对于新手来说,从任务管理器中的那么多进程中找到对应的进程项不是件容易的事,很多人都习惯借助于第三方强制删除软件。其实在Win7系统下,遇到无法删除文件的情况,利用“资源监视器”便可轻松搞定。

解决方案:

(1)右键单击Windows 7任务栏选择启动任务管理器命令,在打开的“Windows任务管理器控制台窗口中点击性能标签,然后点击点击该标签页中的资源监视器按钮进入资源监视器控制台。

(2)在控制台中点击“CPU”标签定位到该标签页下,然后在关联的句柄右侧的搜索框中输入要删除的文件夹名,此时系统会自动搜索与文件夹名句柄相关联的系统进程。搜等片刻,可以看到搜索到调用文件夹的命令程序。由于命令程序进程正在调用文件夹,才造成了对该文件夹删除的失败。右键单击该进程,然后选择结束进程命令弹出警告对话框,确认后即可结束该进程,然后就可以完美删除该文件夹了。。。。

posted @ 2012-05-10 21:52 开始测试 阅读(109) 评论(1) 编辑

2012年5月3日 #

摘要: GOV.CN政府域名注册所需材料注册及填写申请表时注意:要求注册时填写的注册单位名称与机构代码证名称、公章名称、申请表上填写的单位名称完全一致GOV域名注册材料一:域名注册申请表,并扫描。二:带年检的组织机构代码证,加盖公章后扫描。三:注册联系人的身份证:身份证的正反面复印到一张纸上,然后再扫描。网站备案所需材料:一:请填写“网站备案材料一”,签字盖章,并扫描成电子版。下载:网站备案材料一.doc二:请填写“网站备案材料二”,签字盖章,并扫描成电子版。下载:网站备案材料二.doc(必须用钢笔或签字笔亲自填写,单位需在签字处加盖公章)三:带年检的组织机构代码证复印件,加盖公章,并扫描成电子版。四阅读全文
posted @ 2012-05-03 23:32 开始测试 阅读(38) 评论(0) 编辑

摘要: 用OUTLOOK2010如何接收EXE附件2010-06-08 20:32OUTLOOK接收EXE附件运行regedit.exe 找到HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security 新建一个 字串值 Level1Remove,然后设置值为 .exe 如果想访问多个禁止类型文件,扩展名用分号隔开,例如“.exe;.com”等,单击“确认”按钮即可。退出注册表编辑器,重新OUTLOOK2002后即可。 附:OUTLOOK2002认为的不安全文件扩展名列表 .ade .hlp .msi .shs .adp .hta 阅读全文
posted @ 2012-05-03 19:17 开始测试 阅读(5) 评论(0) 编辑

2012年4月25日 #

摘要: 启用C2审核登录造成SQLServer关闭上一篇 / 下一篇 2010-05-05 10:01:07 / 个人分类:SQL Server 查看( 187 ) / 评论( 2 ) / 评分( 10 / 0 ) 一直运行很稳定的数据库服务器(SQLServer2008),突然发生了SQL Server连接不上的问题,检查服务器发现SQL Server服务停止了,其原因是由于C盘空间已满(SQL Server安装在了C盘),经检查发现C:\...\MSSQL\Data存在好多名为"audittrace201000502112519_15.trc"的文件,文件大小200MB,把这些阅读全文
posted @ 2012-04-25 00:38 开始测试 阅读(44) 评论(0) 编辑

摘要: SQLSERVER 2008密码强制策略故障一例 分类: SQLSERVER 2009-11-07 20:24 300人阅读 评论(0) 收藏 举报 今天公司数据库服务器早上莫名连接不上,PING服务器能通,但是ERP不能连接到数据库。登录服务器后,发现SQLSERVER2008登陆不了,用SA的密码也不行,用WINDOWS账户登录也不行。检查SQLSERVER配置程序,发现引擎没有启动,手工启动,出错,提示超时或密码不对。但是密码没改过。重新启动电脑依旧不行。重新再SQLSERVER配置程序里设置引擎的密码,设置为系统账户ADMINISTRATOR,输入密码依旧不能启动。设置为系统账户LOC阅读全文
posted @ 2012-04-25 00:16 开始测试 阅读(51) 评论(0) 编辑

仅列出标题  下一页