SQL Server 2012人の変更

オリジナルリンク: http://www.cnblogs.com/iamasqldba/p/3201985.html

我々はすべて知っているように、2012のSQL Serverの最大の新機能は、「オールウェイズオン」で、実際には、これに加えて、いくつかの内部関数やDMVにも何人かの友人のために期待して、リストのほとんどがアップグレードする大きな改善を作っ助けます。

機能の変更

関数名

オリジナル機能

ソリューション

パスワードWITH BACKUP DATABASEの或ログ
MEDIAPASSWORD WITH BACKUP DATABASEの或ログ

RESTORE | [WITH {DATABASE LOG} MEDIA] PASSWORDをお勧めしません続けます。
非推奨MEDIAPASSWORD WITH | {LOG DATABASE} |バックアップパスワードとBACKUP WITH {DATABASE LOG}

ノー

バックアップと復元

| {DATABASE RESTORE DBO_ONLY WITH LOG} ...

| {DATABASE RESTORE RESTRICTED_USER WITH LOG} ... ...

設定オプション

ます。sp_configure「ユーザーインスタンスタイムアウト」与「ユーザーインスタンスが有効になって」

ローカルデータベース機能を使用します

データベースオプション

sp_dboptionを

ALTER DATABASEの

メタデータ

DATABASEPROPERTY

DATABASEPROPERTYEX

クエリヒント

FASTFIRSTROWヒント

OPTION(FAST N)

セキュリティ

sp_dropalias

ユーザーアカウントとデータベースロールの組み合わせによって置き換えられ、エイリアスをしてください。アップグレードのsp_dropaliasは、別名データベースを削除してご使用ください。

SETオプション

SET DISABLE_DEF_CNST_CHK

ノー

システムテーブル

sys.database_principal_aliases

役割の代わりにエイリアスを使用します

Transact-SQLの

フォーマットRAISERROR整数「string」はもはやRAISERRORを使用されていません

文を書き換えるために、現在のRAISERROR(...)構文を使用してください。

Transact-SQLの構文

COMPUTE / COMPUTE BY

ROLLUPを使用します

Transact-SQLの構文

* = * =と使用方法

ANSI結合構文を使用します

XEvents

databases_data_file_size_changed、databases_log_file_size_changed
eventdatabases_log_file_used_size_changed
locks_lock_timeouts_greater_than_0
locks_lock_timeouts

替换为database_file_size_changeイベント、database_file_size_change
database_file_size_change事件
lock_timeout_greater_than_0
LOCK_TIMEOUT

名前の次の列またはテーブルから選択します

関数のANSI標準のNEXT VALUEを使用してシーケンス。テーブルまたは列とVALUEの名前NEXTエイリアステーブルまたは列場合、省略されているなどのANSI規格の場合には、得られたステートメントは、エラーが発生してもよいです。

この問題を解決するには、キーワードAS ANSI標準が含まれます。例えば、表から次の値を選択テーブルからSELECT NEXT AS値として書き換えられるべきであり、値としてNEXTからの選択のCol1のように書き換えなければならないNEXTの値からのCol1を選択します。

PIVOT演算子

データベース互換性レベル110は、オペレータは、ピボット再帰共通テーブル式(CTE)クエリを許可されていない場合。

100以下に、クエリ、または互換性レベルを書き換えます。各グループは複数の行がある場合、誤った結果が生成されます再帰CTEクエリでPIVOTを使用します。

sp_setapprole和sp_unsetapprole

正しい最大長さである、現在のvarbinary(8000)と呼ばれるクッキー出力パラメータを、sp_setapprole。しかし、現在の実装ではvarbinary型(50)を返します。将来のリリースでの増分のクッキーリターンサイズ、アプリケーションが正しく動作し続けることができたときにように、アプリケーションは、varbinary型(8000)のままであるべきです。詳細については、sp_setapprole(Transact-SQLの)を参照してください。

 

sys.fn_get_audit_file機能

ユーザー定義の監査イベントをサポートするために、2つの新しい列(user_defined_event_idとuser_defined_information)を追加します

 

予約されたキーワードWITHIN

WITHIN今予約キーワードです。「内」または列と呼ばれる参照オブジェクトが失敗します。

括弧や引用符を使用することによって、または別の名前のオブジェクトまたは列の名前を変更します。例えば、[以内] SELECT * FROM。

変換して計算時間または列操作DATETIME2のCAST型

在 SQL Server 的早期版本中,对 time 或 datetime2 数据类型的 CAST 和 CONVERT 操作的默认样式为 121,当在计算列表达式中使用这些类型时除外。 对于计算列,默认样式为 0。 当创建用于涉及自动参数化的查询中或约束定义中的计算列时,此行为会影响计算列。

兼容级别为 110 时,对 time 和 datetime2 数据类型的 CAST 和 CONVERT 操作的默认样式始终为 121。 如果您的查询依赖旧行为,请使用低于 110 的兼容级别或在受影响的查询中显式指定 0 样式。
将数据库升级到兼容级别 110 将不更改已存储到磁盘的用户数据。 您必须相应手动更正此数据。 例如,如果您使用了 SELECT INTO 来从包含上述计算列表达式的源创建表,将存储数据(使用样式 0)而非存储计算列定义本身。 您需要手动更新此数据,以匹配样式 121。

ALTER TABLE

ALTER TABLE 语句只允许两部分的表名 (schema.object)。 使用以下格式指定表名时,现在在编译时会失败,出现错误 117。
server.database.schema.table
.database.schema.table
..schema.table
在早期版本中指定格式 server.database.schema.table 会返回错误 4902。 指定格式 .database.schema.table 或 ..schema.table 则会成功。

要解决此问题,请不要使用 4 部分的前缀。

浏览元数据

使用 FOR BROWSE 或 SET NO_BROWSETABLE ON 查询视图时,现在会返回视图的元数据而非基础对象的元数据。 此行为现在匹配浏览元数据的其他方法。

SOUNDEX

数据库兼容级别为 110 时,SOUNDEX 函数实现的新规则可能导致由该函数计算的值不同于更低数据库兼容级别下计算的值。

在升级到兼容级别 110 后,可能需要重新生成使用 SOUNDEX 函数的索引、堆或 CHECK 约束。

失败的 DML 语句的行计数消息

在 SQL Server 的早期版本中,当 TRY-CATCH 块包含失败的 DML 语句并且该语句由数据库引擎自动参数化或 TRY-CATCH 块所处的级别不同于失败语句的级别时,会向客户端发送不正确的值 -1。 例如,如果 TRY-CATCH 块调用存储过程且该过程中的 DML 语句失败,客户端将错误地收到 -1 值。
依赖这种不正确行为的应用程序将失败。

在 SQL Server 2012 中,DML 语句失败时,数据库引擎将以一致方式将包含 RowCount: 0 的 TDS DONE 令牌发送到客户端

SERVERPROPERTY (‘Edition’)

 

所安装的 SQL Server 2012 实例的产品版本。 使用该属性的值确定已安装的产品支持的功能和限制(如最大 CPU 数)。
基于安装的 Enterprise 版,它可以返回“Enterprise Edition”或“Enterprise Edition:基于内核授予许可”。 根据单个 SQL Server 实例的最大计算能力来区分 Enterprise 版本。 有关 SQL Server 2012 中计算能力限制的详细信息,请参阅按 SQL Server 版本划分的计算能力限制。

CREATE LOGIN

CREATE LOGIN WITH PASSWORD = 'password' HASHED 选项不能用于 SQL Server 7 或更早版本创建的哈希。

 

视图修改

视图名

原列名或类型

修改后列名或类型

sys.dm_exec_requests

nvarchar(16)

nvarchar(32)

sys.dm_os_memory_cache_counters

single_pages_kb

pages_kb

sys.dm_os_memory_cache_counters

multi_pages_kb

pages_in_use_kb

sys.dm_os_memory_cache_entries

pages_allocated_count

pages_kb

sys.dm_os_memory_clerks

列 multi_pages_kb 已删除

 

sys.dm_os_memory_clerks

single_pages_kb

pages_kb

sys.dm_os_memory_nodes

pages_allocated_count

pages_in_bytes

sys.dm_os_memory_nodes

max_pages_allocated_count

max_pages_in_bytes

sys.dm_os_sys_info

physical_memory_in_bytes

physical_memory_kb

sys.dm_os_sys_info

bpool_commit_target

committed_target_kb

sys.dm_os_sys_info

bpool_visible

visible_target_kb

sys.dm_os_sys_info

virtual_memory_in_bytes

virtual_memory_kb

sys.dm_os_sys_info

bpool_commited

committed_kb

sys.dm_os_workers

区域设置列已删除。

 

sys.data_spaces
sys.partition_schemes
sys.filegroups
sys.partition_functions

 

已将新列 is_system 添加到 sys.data_spaces 和 sys.partition_functions。 (sys.partition_schemes 和 sys.filegroups 将继承 sys.data_spaces 的列。)
此列中的值 1 指示该对象用于全文索引片段。
在 sys.partition_functions、sys.partition_schemes 和 sys.filegroups 中,新列不是最后一列。 请修改依赖于从这些目录视图中返回的列顺序的现有查询。

转载于:https://www.cnblogs.com/iamasqldba/p/3201985.html

おすすめ

転載: blog.csdn.net/weixin_30832405/article/details/94947441