一种方法是使用ADO.NET对象,你会在任何.NET应用程序。下面的PowerShell示例不需要安装SQL工具。
要执行使用Windows身份验证查询,在连接字符串中指定Integrated Security=SSPI
:
$connectionString = "Data Source=YourServer;Initial Catalog=YourDatabase;Integrated Security=SSPI";
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString);
$command = New-Object System.Data.SqlClient.SqlCommand("DELETE FROM dbo.YourTable WHERE YourTableID = 1", $connection);
$connection.Open();
$rowsDeleted = $command.ExecuteNonQuery();
Write-Host "$rowsDeleted rows deleted";
$connection.Close();
要使用SQL身份验证执行查询,指定连接字符串中User ID=YourSqlLogin;Password=YourSqlLoginPassword
。
$connectionString = "Data Source=YourServer;Initial Catalog=YourDatabase;User ID=YourSqlLogin;Password=YourSqlLoginPassword";
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString);
$command = New-Object System.Data.SqlClient.SqlCommand("DELETE FROM dbo.YourTable WHERE YourTableID = 1", $connection);
$connection.Open();
$rowsDeleted = $command.ExecuteNonQuery();
Write-Host "$rowsDeleted rows deleted";
$connection.Close();
在任一情况下,需要对表DELETE
权限。
我不知道在您添加到您的问题脚本NET USE
命令的目的,除非这是验证在工作组环境中的服务器。就个人而言,我只是将使用SQL验证,同时删除NET USE
丑陋。
编辑:
在多SELECT
语句在同一批次的情况下,每个将返回一个单独的记录。这就要求,如果您使用的是DataReader
,将返回false,如果没有更多的记录可供调用NextRecordset
:
$reader = $command.ExecuteReader();
do {
While($reader.Read()) {
#process row here;
}
} while($reader.NextResult());
或者,你可以使用DataAdapter
来一补“数据集”。该DataSet
将包含一个单独的DataTable
每个结果集:
$da = New-Object System.Data.SqlClient.SqlDataAdapter($command);
$ds = New-Object System.Data.DataSet;
$null = $da.Fill($ds);
foreach($dt in $ds.Tables) {
$dt | Out-GridView;
}
你也可以调整你的SQL查询来连接成果转化利用UNION ALL
如果列和数据类型的数量是相同的一个结果集。下面是一个例子片断:
$sqlQuery = @("
SELECT *
FROM DB926.dbo.Version_Solution
WHERE Notes ='9.2.7'
UNION ALL
SELECT *
FROM DB_926.dbo.Version_Solution
WHERE Notes ='9.2.7'";
);
$command = New-Object System.Data.SqlClient.SqlCommand($sqlQuery, $connection);
对你那么不工作,什么是你的代码?你有什么尝试? – Esperento57
哎嗨esperento,其实我也没有跟我的代码在那个时间,所以我不能把它上传,但现在我已经编辑了问题,上传的代码,以及我试图通过在谷歌搜索,但它不工作,所以请帮助我吧。 – SRP