$SQLconnection = New-Object System.Data.SqlClient.SqlConnection
$SQLconnection.ConnectionString = "Server = MySQLservername\MSSQLSERVER; Database = "MYSQLDB"; Integrated Security = True"
$SQLconnection.open()
Run Code Online (Sandbox Code Playgroud)
在 MSSQL 2012 中,有效。在 MSSQL 2005 中,获得 SQL 网络接口,错误:25 - 连接字符串无效。
如果仅在连接字符串中使用“Server = MySQLServername”,则有效。我确定实例名称是正确的。这是 SQL 2005 的错误吗?
您错误地构建了字符串,我很惊讶这对于任何版本都适用。连接字符串中间有“MYSQLDB”,并且没有转义带引号的字符串中的双引号。您可以通过运行以下两个命令来看到这一点:
$a = write-output "Server = MySQLservername\MSSQLSERVER; Database = "MYSQLDB"; Integrated Security = True"
$b = write-output "Server = MySQLservername\MSSQLSERVER; Database = `"MYSQLDB`"; Integrated Security = True"
$a.gettype()
$b.gettype()
Run Code Online (Sandbox Code Playgroud)
第一行返回一个数组而不是字符串,因为分号被视为运行两个命令
只要记住在双引号字符串中转义双引号就可以了:
$SQLconnection.ConnectionString = "Server = MySQLservername\MSSQLSERVER; Database = `"MYSQLDB`"; Integrated Security = True"
Run Code Online (Sandbox Code Playgroud)