我正在尝试使用动态表列表从 powershell 运行 sqlpackage,但将表列表放入 var 时出现错误。我需要将表列表放入 var 中,因为它将动态生成。
下面的代码工作得很好:
.\sqlpackage.exe `
/a:Export `
/scs:"Data Source=$($ServerName);Initial Catalog=$($SourceDbName);User ID=my_user;Password=my_password" `
/tf:$BacPacFileName `
/p:TableData=[dbo].[QRTZ_CALENDARS] /p:TableData=[dbo].[QRTZ_SCHEDULER_STATE]
Run Code Online (Sandbox Code Playgroud)
但是,当我将表列表放入 var 中时,它失败了:
$tableList = "/p:TableData=[dbo].[QRTZ_CALENDARS] /p:TableData=[dbo].[QRTZ_SCHEDULER_STATE]"
.\sqlpackage.exe `
/a:Export `
/scs:"Data Source=$($ServerName);Initial Catalog=$($SourceDbName);User ID=my_user;Password=my_password" `
/tf:$BacPacFileName `
$($tableList)
Run Code Online (Sandbox Code Playgroud)
错误文本:
.\sqlpackage.exe:参数“TableData”具有无效值:
'[dbo].[QRTZ_CALENDARS] /p:TableData=[dbo].[QRTZ_SCHEDULER_STATE]'。
必须使用两部分表指定从中提取数据的表
名称格式:schema_name.table_identifier。
行:1 字符:1
+ .\sqlpackage.exe `
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (参数 'T...ble_identifier.:String) [], RemoteException
+ FullQualifiedErrorId : NativeCommandError / 附近的语法不正确。