Azure SQL:使用 Powershell 的“Invoke-sqlcmd"的无效对象名称在 Adventureworks 上

2021-09-10 00:00:00 azure sql powershell tsql sql-server

我是 SQL 新手,尝试使用 PowerShell 的 Invoke-SQLCmd 查询 Azure SQL 数据库(Adventureworks 示例).

I'm new to SQL, trying to query an Azure SQL Database (Adventureworks sample) using PowerShell's Invoke-SQLCmd.

当我在 Powershell 中尝试以下命令时:

When I try the following command in Powershell:

Invoke-Sqlcmd -Query "SELECT * FROM SalesLT.Customer;" -ServerInstance 
"<servername>.database.windows.net" -Username <username> -Password <password>

我明白了:

Invoke-Sqlcmd : Invalid object name 'SalesLT.Customer'.

我是否需要指定该表所在的数据库?即,SQLDatabse"而不是master"?但是当我将 Use SQLDatabase 添加到我的查询时,它会引发另一个错误:

Do I need to specify what Database that table is under? Namely, "SQLDatabse" instead of "master"? But when I add Use SQLDatabase to my query it throws another error:

USE statement is not supported to switch between databases. Use a new     
connection to connect to a different database.

注意:从 SQL Server Management Studio 执行这些查询会得到没有错误的表.

Note: Executing these queries from SQL Server Management Studio gets me the table with no errors.

谢谢!

推荐答案

在命令参数中添加一个-Database [dbname]:

Add a -Database [dbname] to the command parameters:

Invoke-Sqlcmd -Query "SELECT * FROM SalesLT.Customer;" 
    -ServerInstance "<servername>.database.windows.net" 
    -Username <username> -Password <password> -Database <dbname>

https://msdn.microsoft.com/en-us/library/cc281720.aspx

相关文章