如何用PowerShell创建与SSMS操作等价的SQL Server空白数据库
用PowerShell创建与SSMS默认配置一致的SQL Server数据库
当你在SSMS中右键「Databases」选择「New Database...」,命名为test并点击「OK」时,本质是让SQL Server使用实例的所有默认配置创建数据库——包括默认的数据/日志文件存储路径、初始大小、自动增长规则、继承服务器排序规则、完整恢复模式等。用PowerShell可以通过两种方式实现完全一致的效果,无需依赖外部.sql文件:
方法1:使用官方SqlServer模块(推荐)
微软官方的SqlServer模块提供了New-SqlDatabase cmdlet,默认行为完全匹配SSMS右键新建数据库的逻辑:
- 先安装模块(如果未安装):
Install-Module -Name SqlServer -Scope CurrentUser -Force
- 执行创建命令(替换
你的SQL实例名为实际实例,比如localhost或.\SQLEXPRESS):
New-SqlDatabase -ServerInstance "你的SQL实例名" -Name "test"
这个命令会自动读取目标SQL实例的默认配置,生成和SSMS操作完全一致的空白数据库。
方法2:直接执行T-SQL语句(无模块依赖)
如果不想安装SqlServer模块,可以通过PowerShell调用.NET类执行原生T-SQL——CREATE DATABASE test;就是SSMS后台执行的核心语句,会自动继承服务器默认配置:
$serverInstance = "你的SQL实例名" $dbName = "test" # 构建Windows身份验证的连接字符串(如果用SQL身份验证,需添加User ID和Password) $connString = "Server=$serverInstance;Integrated Security=True;" $conn = New-Object System.Data.SqlClient.SqlConnection($connString) $cmd = New-Object System.Data.SqlClient.SqlCommand("CREATE DATABASE $dbName;", $conn) try { $conn.Open() $cmd.ExecuteNonQuery() Write-Host "数据库test已成功创建,配置与SSMS默认新建一致" } catch { Write-Error "创建失败:$_" } finally { $conn.Close() $conn.Dispose() }
验证一致性
创建完成后,你可以在SSMS中查看test数据库的属性:数据/日志文件的路径、初始大小、自动增长设置,以及排序规则、恢复模式等,都会和直接在SSMS中新建的完全相同。
内容的提问来源于stack exchange,提问作者helpaccount321
相关产品推荐
相关产品推荐

