资讯动态

SQL Server 2008 R2 在 Windows 11 安装与报错排查

发布时间:2026/9/18 11:00:52 来源:尧图企业网站定制
半夜接到一个电话说某台产线上的老设备管理程序突然连不上数据库了远程一看装的是 SQL Server 2008 R2运行在 Windows 7 上新换的运维电脑是 Windows 11想在自己的机器上装一套同样的环境做调试结果装到一半就报错退出。这类场景我这些年遇到过太多次了老系统跑在 SQL Server 2008 上新系统又跑在 Windows 10 或 Windows 11 上中间隔了十几年的兼容性沟壑。这篇就把 Windows 环境下 SQL Server 2008 与 2008 R2 的完整安装流程拆开讲包括装之前的组件准备、向导里每一屏到底该怎么选、装完之后的验证动作以及那几个反复出现的报错到底怎么根治。内容偏向实操适合手里有老项目要维护、或者需要在本地搭一套一模一样的测试库的人参考跟着走一遍基本能一次装通。1. 先分清你要装的到底是哪个版本2008、2008 R2 与四大版本的区别动手之前把版本这件事定下来能省掉后面一半的返工。很多人张嘴就说装个 SQL Server 2008实际上他手上的安装介质可能是 2008也可能是 2008 R2这两个东西看着像内核代号、补丁线、功能集都不一样装错了再回来重装浪费的是半天时间。1.1 2008 与 2008 R2 不是同一个东西SQL Server 2008 的内核版本号是 10.02008 R2 是 10.50。别小看这个零头两者的实例目录名都不一样2008 默认实例的安装目录是MSSQL10.MSSQLSERVER2008 R2 则是MSSQL10_50.MSSQLSERVER。这个差别在你后面要停服务、找数据文件、配端口的时候会直接影响你敲命令。功能上2008 R2 增加了 PowerPivot、主数据服务Master Data Services、以及更大规模的数据仓库能力对企业级场景更友好2008 则更老派很多 2010 年前后上线的业务系统就是基于它做的。选择原则很简单你的老系统原来跑的是哪个就装哪个。备份文件的兼容性只允许从低版本还原到高版本反过来不行你拿 2008 R2 的备份往 2008 上还原会直接报数据库版本不兼容。判断方法也简单随便打开一个现成的数据库执行一句SELECT VERSION;或者看实例的SERVERPROPERTY(ProductVersion)10.0.x 就是 200810.50.x 就是 2008 R2。1.2 开发版才是绝大多数人的正确选择安装介质里通常会让你选版本常见的有企业版Enterprise、标准版Standard、开发版Developer和精简版Express。做维护和本地调试选开发版。原因很直接开发版在功能上等同于企业版该有的分区、压缩、索引视图、高可用组件全都有唯一的限制是授权条款里写明不能用于生产环境。对于本地复现问题、写代码调试、做数据迁移验证它是最划算的。标准版会砍掉一部分企业特性比如在线索引重建、部分高级压缩选项你本地调试时如果老系统用的是企业版特性标准版上跑不起来排查方向会被带偏。精简版更不用考虑单库 10GB 上限、内存和 CPU 都有硬限制拿来调试复杂存储过程很容易因为资源不够出现假故障白白浪费排查时间。提示安装介质里的版本选择有时候是通过输入产品密钥来决定的手里没有密钥的话直接选带开发版字样的介质或者选评估版Evaluation先跑通再说。1.3 32 位还是 64 位以及 SP 补丁的取舍现在几乎没有理由选 32 位了。除非你的业务程序本身就是 32 位且强依赖 32 位的 OLE DB 驱动否则一律装 64 位。64 位实例在内存寻址上不受 3GB 左右的限制能正常吃满服务器内存这对数据库来说是生死攸关的。判断老系统是哪个版本看一眼数据目录名或者直接问维护方即可。补丁这块要有心理预期原始 RTM 版本的 SQL Server 2008 发布于 2008 年缺少后面十年积累的大量修复。SQL Server 2008 最终停在 SP42008 R2 最终停在 SP3。我的习惯是先把 RTM 装通、能连上再单独打 SP 包而不是试图找整合好的介质——分开装的好处是出错时能立刻定位是主安装出问题还是补丁出问题。整合slipstream虽然能省一步但对介质目录结构有要求反而容易在解压环节卡住。版本内核版本最终补丁默认实例目录名SQL Server 200810.0SP4MSSQL10.MSSQLSERVERSQL Server 2008 R210.50SP3MSSQL10_50.MSSQLSERVER开发版功能同企业版不可用于生产同上取决于内核精简版受限不适合调试MSSQL10_50.SQLEXPRESS2. 安装前必做的三项准备系统组件、安装介质与执行权限安装失败十有八九不是安装程序本身的问题而是环境没铺好。这一段讲的都是看起来无关、实际致命的前置条件尤其是系统组件这一块在新版 Windows 上几乎是必踩的坑。2.1 把 .NET Framework 3.5 装回去这一步卡住过太多人SQL Server 2008 的安装引导程序是用 .NET Framework 3.5 写的。Windows 10 和 Windows 11 默认只启用 .NET Framework 4.x3.5 虽然还保留在系统里但处于未启用状态。你双击setup.exe最常见的表现就是弹一句SQL Server 安装程序需要 Microsoft .NET Framework 3.5 SP1然后直接退到桌面。解决方法是启用系统自带的 NetFx3 功能。注意不是去网上下一个安装包微软官方早就不单独分发 3.5 的独立安装器了正确做法是从系统的按需功能源里恢复。挂载 Windows 安装镜像或者插入安装 U 盘找到里面的sources\sxs目录然后以管理员身份运行dism /online /enable-feature /featurename:NetFx3 /all /source:D:\sources\sxs /limitaccess/limitaccess这个参数很关键它的作用是禁止 DISM 去联网找源强制只从你指定的sources\sxs里取文件。不加它系统会尝试连在线源内网环境下往往等半天然后失败。如果你更习惯 PowerShell等价命令是Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source D:\sources\sxs跑完之后重启一次再验证是不是真的启用了dism /online /get-featureinfo /featurename:NetFx3输出里看到状态: 已启用才算过关。2.2 兼容模式与安装介质的解压路径即便 .NET 3.5 装好了在新系统上直接双击setup.exe仍然可能卡在正在启动安装程序那个界面一动不动。原因是安装引导程序里有一段老式的环境探测逻辑和新系统的某些行为不兼容。处理办法我在多个版本上都验证有效右键setup.exe进属性 → 兼容性选项卡勾上以兼容模式运行这个程序选 Windows 7同时勾选以管理员身份运行此程序应用之后再用这个快捷方式启动。另一个容易被忽略的点是安装介质的挂载方式。ISO 直接双击挂载成虚拟光驱是可以的但如果你把整个 ISO 里的文件复制到某个目录一定注意别放在带中文或空格的路径下老安装程序在这种路径上偶尔会解压失败。解压出来的临时文件默认落在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\下面里面有个Log子目录装失败时所有日志都在那儿排查时先看Summary.txt它会直接列出哪条规则没过。2.3 磁盘、账户与安全软件的干扰留够磁盘空间这件事听起来像废话但确实有人栽在这上面。完整安装数据库引擎 复制 全文搜索 管理工具大概要 6GB 左右如果还要装 Analysis Services 和 Reporting Services预留 10GB 更稳。数据文件和日志文件我建议从一开始就分开放装机时把数据目录和日志目录指到不同的物理盘上如果是虚拟机至少指到不同分区这对后续 IO 表现有实际影响一开始不规划后面迁移数据文件是要停服务的。账户权限这块安装过程要用管理员身份而且要确认当前登录的账户有作为服务登录的权限。有些企业域环境做过组策略收紧普通管理员账户不一定有表现是服务账户配置那一屏反复报权限错误。遇到这种情况让域管理员临时把账户加进本地 Administrators 组装完再撤掉。注意第三方的安全软件、主机防护、自动更新工具在安装期间建议全部退出或暂停。它们会在安装程序写注册表、注册服务、修改防火墙规则的时候拦截操作报出来的错误信息往往和真实原因完全无关是排查中最容易被误导的一类干扰。3. 安装向导逐屏拆解从功能选择到实例命名进了安装向导之后前面几屏产品密钥、许可条款、安装规则基本是顺着的真正需要动脑子的是从功能选择开始。这一屏决定了你机器上会被塞进多少服务、开多少端口选多了是负担选少了后面还得回来补装。3.1 功能选择这一屏决定了后面所有的麻烦我的建议是能少选就少选。典型的最小可用组合是数据库引擎服务、SQL Server 复制、全文搜索、客户端工具连接、管理工具-完整。这个组合能覆盖 95% 的维护和调试场景。数据库引擎是核心不用解释。复制和全文搜索虽然是可选项但很多老系统的脚本里明明暗暗用了链接服务器、发布订阅或者CONTAINS查询装的时候不勾跑业务脚本的时候才报错回头补装又得走一遍向导不如一次到位。客户端工具连接装的是 OLE DB、ODBC、ADO.NET 这些驱动你的应用代码就是靠它连数据库的不装的话服务端没问题但程序连不上很迷惑。管理工具这一项要特别注意基本和完整的差别在于前者只带 Management Studio 的一部分后者才包含完整的查询编辑器、导入导出向导、Profiler性能分析器、数据库引擎优化顾问。做排查没有 Profiler 相当于闭着眼干活直接选完整。至于 Analysis Services 和 Reporting Services除非你明确知道业务用了它们一律不装。这两个组件会额外注册服务、占用端口Reporting Services 还需要单独配置报表服务器数据库配置不当会一直报错纯粹给自己添堵。3.2 实例命名与实例 ID 的隐藏规则实例分两种默认实例和命名实例。默认实例只有一个服务名就是MSSQLSERVER客户端连接时写127.0.0.1或localhost就行不用带实例名。命名实例可以装多个服务名是MSSQL$实例名连接时得写成127.0.0.1\实例名。判断装哪种很简单如果你要复现的是一台现成的服务器先去问清楚它的实例名。很多老系统用的是命名实例比如.\SQLEXPRESS或者192.168.1.10\OLDDB你本地装成默认实例连接字符串对不上程序照样起不来。实例 ID 这一栏大多数时候不用改它会自动跟随实例名。默认实例的实例 ID 固定是MSSQLSERVER命名实例的实例 ID 默认等于实例名。有个细节是实例 ID 一旦确定就无法在安装后修改而它直接决定了目录名和注册表键名。如果你希望目录好看一点可以在这一屏手动改实例 ID但要注意只能用字母、数字和下划线而且不能和已有的实例冲突。3.3 服务账户、排序规则与文件目录磁盘空间检查通过之后会进入服务器配置这一屏需要给每个服务指定运行账户。SQL Server 2008 时代最常用的做法是统一使用NT AUTHORITY\NETWORK SERVICE简单、不需要密码、权限也够。2008 R2 之后开始支持虚拟账户形如NT Service\MSSQLSERVER权限更收敛安全性更好如果你的介质是 2008 R2可以直接用虚拟账户。关键是所有服务用同一个账户别一个用 Network Service 一个用 Local System。混用会导致 SQL Server 代理、全文搜索这些组件在某些操作上互相没权限报一些莫名其妙的错误。排序规则这一屏默认会跟随操作系统的区域设置中文系统上一般是Chinese_PRC_CI_AS这个值在中文业务场景下是正确的别乱改。CI表示大小写不敏感AS表示重音敏感这套组合是国内绝大多数老系统的实际配置。排序规则有个很多人不知道的事实服务器级排序规则装完之后几乎没法改真要改得重建系统数据库等于重装。所以这一屏一定要确认清楚。文件目录那一屏把数据、日志、备份、临时数据库四个目录分别指到规划好的路径上别全堆在 C 盘默认目录等数据库涨到几十个 G 的时候你就知道痛了。4. 数据库引擎配置身份验证模式的取舍与 sa 账户点过前面几屏会进入数据库引擎配置这一屏是整条流水线上最需要动脑子的一屏选错了不是装不上而是装上了用不了或者留了安全隐患。4.1 混合模式与 Windows 模式到底怎么选选项有两个Windows 身份验证模式、混合模式SQL Server 和 Windows 身份验证模式。Windows 模式意味着只能通过操作系统的账户身份登录数据库好处是密码统一由域或本地账户体系管理不存在数据库层独立密码泄露的问题。坏处也很明显如果你的应用连接字符串里写的是sa加密码那这个模式下根本连不上。混合模式允许用数据库自己维护的账号主要是sa登录这是现在绝大多数老系统的实际形态。我的建议很直接只要你需要复现的应用使用了 SQL 账号连接就必须选混合模式。选 Windows 模式之后再想启用混合模式得进 Management Studio 改服务器属性、重启服务虽然不难但多绕一圈。选混合模式就得给sa设密码并且系统会强制要求密码满足复杂度至少 8 位包含大小写字母、数字、符号中的三类。这里有个实操上的矛盾——老系统的连接字符串往往写死了sa的密码你本地设一个不一样的值程序当然连不上。所以正确的顺序是先去翻应用的配置文件看它连数据库用的是什么账号什么密码然后在安装时原样设置。千万别图省事直接设成123456或者sa复杂度检查会直接拦住你装不下去。4.2 指定管理员这一屏别手滑跳过混合模式设置完之后紧接着是指定 SQL Server 管理员这一屏。它的作用是往数据库里添加一个 Windows 账户赋予sysadmin角色。这一屏必须至少加一个账户而且最好是当前登录的这个账户点添加当前用户就行。为什么强调这个因为有些教程会告诉你反正用 sa 登录这一屏跳过也行。跳过的后果是数据库装完了你用 sa 能连上但如果哪天 sa 密码忘了或者连接策略限制只让 Windows 账户连你就没有任何一个有管理权限的 Windows 账户可以进去改只能走单用户模式重启实例相当折腾。加上当前用户等于给自己留了一条后路。这里还有个常见误区当前登录的 Windows 账户和数据库里的管理员账户不是同一回事。你在操作系统里是管理员不代表在 SQL Server 里就有权限两者是独立的权限体系。安装时加进去的那个账户才是真正的数据库管理员。4.3 数据目录规划与 tempdb 的初步考量同一屏的数据目录选项卡里会分别让你指定用户数据库目录、日志目录、备份目录、tempdb 目录。默认全在 C 盘生产环境肯定不能这么干本地调试也建议至少把数据文件和日志文件分开。原因是 SQL Server 写日志和数据是两种截然不同的 IO 模式日志是顺序追加写数据文件是随机读写。放在同一块物理盘上两种 IO 互相争抢写日志的延迟会直接拖慢事务提交。本地虚拟机如果只有一块盘那就只能退而求其次至少保证 tempdb 不要和用户数据库放在一起因为 tempdb 的写入极其频繁还有自动增长操作混在一起容易互相影响。顺手说一句 tempdb 的初始大小。安装时是没法设置的装完之后应该第一时间去调。默认配置下 tempdb 初始大小只有 8MB自动增长按 10% 递增这个设置在数据量上来之后会导致频繁的文件增长每次增长都会短暂阻塞整个实例。老手会把它改成固定大小、固定增量比如初始 1GB每次增长 512MB并且按 CPU 核数拆成多个数据文件一般四到八个就够不用和核数一一对应。5. 安装完成不等于能用四项验证与远程连接打通向导跑完进度条走到 100%弹出安装已成功完成很多人到这儿就以为完事了。实际上这一步只是把文件和注册表写完了服务和网络连接默认状态未必可用还得手动验证和调整。5.1 服务、版本号与 ERRORLOG 的快速自检第一件事是看服务有没有起来。按Win R输入services.msc找到以SQL Server (开头的服务项。默认实例的服务名是SQL Server (MSSQLSERVER)命名实例是SQL Server (实例名)。启动类型建议设为自动但有个细节2008 时代的默认设置是自动延迟启动如果你希望开机能第一时间连上数据库改成普通自动更稳妥。接着用刚装好的 Management Studio 连进去执行一句SELECT VERSION;输出里应该能看到类似Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)的信息。版本号对不上说明你装的内核版本和预期不一致赶紧回去看第 1 节。再深一层的自检是看启动日志。执行EXEC xp_readerrorlog 0, 1;这会读出实例的 ERRORLOG 内容重点看两处启动时报的严重级别错误Severity: 16以上要留意以及SQL Server is now ready for client connections这句话是否出现。有时候实例表面上是起来了但日志里写着某个数据库恢复失败、或者某个组件初始化异常这种问题不主动看日志是发现不了的。5.2 启用 TCP/IP 协议与固定端口这是远程连不上数据库最常见的根因SQL Server 2008 系列安装完之后TCP/IP 协议默认是已禁用状态。它只启用了共享内存和命名管道意味着本机可以连局域网里其他机器完全连不上。打开SQL Server 配置管理器在开始菜单的 SQL Server 目录下展开SQL Server 网络配置选中对应实例的协议在右侧把 TCP/IP 的状态改成已启用。改完必须重启 SQL Server 服务才生效配置管理器会提示你但很多人直接忽略。第二步是确认端口。默认实例默认监听 1433但如果是命名实例默认使用动态端口每次服务重启端口都可能变这对外部应用是灾难。做法是在 TCP/IP 属性里切到IP 地址选项卡拉到最底部的IPAll区域把TCP 动态端口清空在TCP 端口里填一个固定值默认实例填 1433命名实例可以填 1434 之外的任意空闲端口比如 51433。改完同样要重启服务。提示改端口之后应用的连接字符串也要同步改写成服务器IP,端口号的形式注意中间是逗号不是冒号这是 SQL Server 特有的写法写错了连不上还找不到原因。5.3 防火墙、SQL Server Browser 与远程连接测试端口固定好之后还得让防火墙放行。图形界面里加一条入站规则允许 TCP 1433 是最直观的命令行也很快netsh advfirewall firewall add rule nameSQLServer1433 dirin actionallow protocolTCP localport1433如果是命名实例并且你没法固定端口那就得依赖 SQL Server Browser 服务。这个服务监听 UDP 1434作用是告诉客户端你要连的那个命名实例现在在哪个端口上。它的启动类型默认是已禁用用了命名实例就一定要改成自动并启动。最后验证。别在本机测本机永远能连上走共享内存。找同一局域网的另一台机器在那里用 Management Studio 连192.168.1.10,1433能连上才算真的打通。连不上就按这个顺序查服务有没有起 → TCP/IP 有没有启用 → 端口有没有固定 → 防火墙有没有放行 → 客户端和服务器在不在同一网段。这五步走一遍基本都能定位到。检查项默认状态需要改成生效方式TCP/IP 协议已禁用已启用重启 SQL Server 服务TCP 端口动态命名实例固定端口重启 SQL Server 服务SQL Server Browser已禁用自动并启动启动服务防火墙入站规则无放行对应端口立即生效6. 安装报错排查链路从 WMI 到性能计数器的几个经典坑前面讲的都是顺风局现在说逆风局。SQL Server 2008 在新系统上安装失败报错就那么几类每一类背后都有一个明确的原因最怕的是看到报错就乱试越试越乱。这一节按现象 → 原因 → 修复 → 验证的链路走你照着复现排查思路就行。6.1 需要 .NET Framework 3.5 SP1 与重启规则的循环第一类报错是安装程序刚启动就退提示缺少 .NET Framework 3.5 SP1。第 2.1 节已经讲了处理方法但有个变体更折腾你明明启用了 NetFx3dism /get-featureinfo也显示已启用安装程序还是报同样的错。这种情况通常是系统里同时存在 4.x 和 3.5而安装程序的版本探测逻辑只认某个特定的注册表键。可以检查这个路径HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5如果这个键不存在或者缺少Install值为 1 的项说明 3.5 的注册信息不完整。这时候最干净的办法是用 Windows 的启用或关闭 Windows 功能图形界面勾选 .NET Framework 3.5包括 .NET 2.0 和 3.0让它走一遍标准流程比命令行更保险。第二类是安装规则检查里的重新启动计算机未通过也就是系统有挂起的重启操作Pending Reboot。正常做法当然是重启一次但有时候重启完还是显示未通过因为某个软件又把挂起标记写回去了。如果确认这台机器上没有正在进行的重要操作可以用安装参数跳过这条检查setup.exe /SkipRulesRebootRequiredCheck /ACTIONInstall这条规则跳过是安全的它只是提示性的检查不涉及文件完整性。但我不建议养成长年用/SkipRules的习惯尤其是涉及 WMI、性能计数器这些检查的规则跳过之后往往在安装后半段以更难看的方式失败。6.2 性能计数器注册表项一致性检查失败的修复这是我遇到过最多的一个坑报错原文大意是性能计数器注册表项一致性验证失败或者干脆提示无法读取性能计数器。原因是 SQL Server 要注册自己的性能计数器而系统里的计数器注册表在长期运行、装过各种软件之后会出现损坏或者一致性偏移导致注册失败。修复的核心是重建计数器缓存。以管理员身份打开命令提示符两个目录都要跑cd /d C:\Windows\SysWOW64 lodctr /R cd /d C:\Windows\System32 lodctr /R之所以两个目录都要跑是因为 64 位系统上 32 位和 64 位进程各自维护一套计数器缓存安装程序会同时检查两边只重建一边照样失败。跑完/R之后重启系统再验证一下lodctr /Q如果/R报无法重建性能计数器设置说明注册表损坏比较严重可以尝试先备份再修复lodctr /R:backup.txt实在修不动的极端情况可以走 WMI 仓库重建注意这个操作会让某些依赖 WMI 的第三方监控软件丢配置winmgmt /verifyrepository winmgmt /salvagerepository前一条是校验后一条是尝试修复。修复完重启再重新跑安装程序。6.3 其他几个让人抓狂的报错与处理方式还有几个坑单独说一下都是实际踩过的。一个是安装到功能选择之后报无法打开计算机上的 WMI 提供程序。这通常是因为 WMI 服务Windows Management Instrumentation被禁用或者损坏。检查服务有没有启动没启动就启动启动了的还是报错按上一节的winmgmt /salvagerepository处理。另一个是安装过程中突然回滚日志里能看到错误 0x84B20001之类的十六进制码。这类错误基本上都是权限或者临时目录问题。检查C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\这个目录的权限确保当前账户有完全控制权同时确认系统盘剩余空间足够安装过程会在临时目录解压大量文件至少留 10GB。再有一个是由于计算机上已存在某个实例无法继续或者卡在实例名重复。多数是因为之前装失败过残留了注册表项和目录。清理时要三处都清服务列表里的残留服务、C:\Program Files\Microsoft SQL Server\下的实例目录、注册表HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\下的实例键。全清完再重启然后重新装。注意清理注册表前一定要先导出备份。Microsoft SQL Server这个键下面除了实例信息还有安装程序自己的全局配置误删会导致新安装也起不来那就只能重装系统了。7. 装好之后的收尾动作补丁、兼容级别与日常习惯装通只是起点。一套数据库环境要在手里用得顺手后面还有几个动作要做做完之后你再去排查业务问题时手里的工具才够用。7.1 补丁与备份策略的落地补丁这块前面提过RTM 装完立刻打对应的最终 SP。安装 SP 的流程和主安装类似右键 SP 的setup.exe同样要设兼容模式一路下一步就行。打完 SP 记得再用SELECT VERSION;看一眼版本号确认生效。备份这事得在装完的当天就配好别等到出事才想起来。SQL Server 2008 里的维护计划功能足够用LocalDB 之外的场景我都建议配一个每日完整备份 每小时事务日志备份的组合。自动化脚本其实更可控因为它不依赖 SQL Agent 的作业调度异常可以写成批处理配合系统的计划任务sqlcmd -S 127.0.0.1,1433 -U sa -P 你的密码 -Q BACKUP DATABASE [TestDB] TO DISKD:\Backup\TestDB.bak WITH INIT, COMPRESSION, CHECKSUM关键参数是CHECKSUM它会校验备份文件的页完整性将来还原的时候能提前发现备份本身是不是坏的。这个参数很便宜但能救命。7.2 兼容级别与开发习惯的养成有一件事很多人不知道新安装的数据库默认兼容级别会跟随实例版本。如果你把老库假设原来是在 SQL Server 2000 上用备份还原的方式迁过来还原之后兼容级别会保留原样比如 80 级别。兼容级别不是 100 的时候查询优化器会用老一代的逻辑性能表现和你在新版本上做的预估完全对不上。想查看当前兼容级别SELECT name, compatibility_level FROM sys.databases;改的话用ALTER DATABASE 库名 SET COMPATIBILITY_LEVEL 100;。但改之前一定要在测试库上验证业务逻辑因为兼容级别提升之后某些依赖旧行为的查询比如对 NULL 的处理、字符串截断可能返回不同结果直接在生产上改是危险的。日常使用上还有两个我自己一直在用的习惯。一个是把常用连接存成 SSMS 里的注册服务器按环境分组切库的时候不用每次敲 IP 和实例名另一个是养成用sqlcmd跑脚本的习惯因为图形界面的查询窗口在粘贴大段 T-SQL 时偶尔会把换行搞乱涉及存储过程创建的时候特别容易出问题。还有就是本地这套环境装完之后建议立刻做一次完整备份留档将来机器重装或者环境崩了直接还原一台出来比重新折腾一遍安装流程省事太多尤其是那几个兼容性和性能计数器的坑真的不想再踩第二次。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价