首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell Invoke-SqlCmd:指定端口

Powershell Invoke-SqlCmd:指定端口
EN

Stack Overflow用户
提问于 2015-10-28 00:34:56
回答 2查看 9.3K关注 0票数 2

我想要连接到一个数据库以在该数据库上执行脚本,但是,我只能使用特定的端口号访问相关的数据库。

在代码方面,我有一些类似的东西:

代码语言:javascript
复制
Invoke-SqlCmd -ServerInstance "Servername,53806" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

当我运行这段PS代码时,什么也没有发生。报告中什么也没写。也不会向控制台写入任何内容。当我将代码片段更改为:

代码语言:javascript
复制
Invoke-SqlCmd -ServerInstance "Servername","53806" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

代码语言:javascript
复制
Invoke-SqlCmd -ServerInstance Servername,53806 -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"

我收到错误消息,指出参数ServerInstance的值不能为空。

如果我删除端口,脚本运行的时间会更长一些,导致明显的“建立连接时发生网络相关或特定于实例的错误”的错误通知。

在ServerInstance参数中使用Invoke-SqlCmd时,我应该如何指定端口。

EN

回答 2

Stack Overflow用户

发布于 2015-10-28 01:18:27

你的第一个语法是正确的,例如,下面的语法适用于我:

代码语言:javascript
复制
Invoke-SqlCmd -ServerInstance "DbServer,29487" -Database "Master" -Verbose -Query "Select @@ServerName"

但是,请确保已配置TCP连接。如果命名实例正在工作,则可能是您正在通过命名管道连接。

一种简单的测试方法是使用Telnet:

代码语言:javascript
复制
telnet server port

看看它是否连接上了。如果没有,那么这就是你需要集中注意力的地方。

(如果未找到Telnet,则可能需要将其作为一项功能安装)。

票数 3
EN

Stack Overflow用户

发布于 2015-10-28 02:49:51

试试这个:

代码语言:javascript
复制
Invoke-SqlCmd -ServerInstance `"Servername,53806`" -Database "DatabaseName" -InputFile $File.Fullname -Verbose | Out-File -filePath "D:\Test\TestSQLCmd.rpt"
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33373516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档