我々はすべて知っているように、2012のSQL Serverの最大の新機能は、「オールウェイズオン」で、実際には、これに加えて、いくつかの内部関数やDMVにも何人かの友人のために期待して、リストのほとんどがアップグレードする大きな改善を作っ助けます。
機能の変更
関数名 |
オリジナル機能 |
ソリューション |
パスワードWITH BACKUP DATABASEの或ログ |
RESTORE | [WITH {DATABASE LOG} MEDIA] PASSWORDをお勧めしません続けます。 |
ノー |
バックアップと復元 |
| {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 |
替换为database_file_size_changeイベント、database_file_size_change |
名前の次の列またはテーブルから選択します |
関数の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 样式。 |
ALTER TABLE |
ALTER TABLE 语句只允许两部分的表名 (schema.object)。 使用以下格式指定表名时,现在在编译时会失败,出现错误 117。 |
要解决此问题,请不要使用 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 数)。 |
|
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 |
已将新列 is_system 添加到 sys.data_spaces 和 sys.partition_functions。 (sys.partition_schemes 和 sys.filegroups 将继承 sys.data_spaces 的列。) |
转载于:https://www.cnblogs.com/iamasqldba/p/3201985.html