![](/img/trans.png)
[英]Run multiple queries from 1 SQL file showing result in multiple tables
[英]PowerShell run SQL file with multiple queries and export the result to text file
我有一個包含多個查詢的 SQL 文件。 我通過 PowerShell 運行 SQL 文件並將結果導出到文本文件。 結果只包括第一個查詢結果。
CREATE TABLE [MyDataBase].[dbo].[Persons] (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
INSERT INTO [MyDataBase].[dbo].[Persons] (PersonID,LastName,FirstName,Address,City) VALUES( '101','LastnameA', 'FirstNameA', 'AddressA','CityA'),
( '102','LastnameB', 'FirstNameB', 'AddressB','CityB'),
( '103','LastnameC', 'FirstNameC', 'AddressC','CityC');
SQl 文件 SQL_File 在這里
Select LastName from [MyDataBase].[dbo].[Persons] where PersonID ='101'; Select LastName from [MyDataBase].[dbo].[Persons] where PersonID ='102'
我的 PowerShell 腳本代碼在這里
$SQLServer = "MyService"
$Database = "MyDatabase"
$InputSQPath = "c:\myPath\SQL_File.sql"
$OutputSQFile ="c:\myPath\Myresult.txt"
Invoke-Sqlcmd -ServerInstance $SQLServer -Database $Database -InputFile $InputSQPath | Out-File -FilePath $OutputSQFile
實際結果:
姓A
預期結果:所有結果
姓A
名字B
查詢是否必須執行三次? 你能代替我們使用 IN(然后是 ORDER BY)或 UNION 嗎?
例子:
select LastName from [MyDataBase].[dbo].[Persons] where PersonID in ('101','102','103) ORDER BY LastName;
或者
Select LastName from [MyDataBase].[dbo].[Persons] where PersonID ='101'
UNION ALL
Select LastName from [MyDataBase].[dbo].[Persons] where PersonID ='102'
UNION ALL
Select LastName from [MyDataBase].[dbo].[Persons] where PersonID ='103'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.