Tho*_*ong 0 sql string powershell literals
好的,这是一个有趣的.我将尝试简化问题在Powershell中,假设我使用以下内容:
$users = Get-ADUser | Select samAccountName, givenName, sn
Run Code Online (Sandbox Code Playgroud)
Active Directory示例有3个用户:
First Name Last Name
__________ _________
Jen Jones
Jason O'Neil
Jake Johnson
Run Code Online (Sandbox Code Playgroud)
我在powershell中有一个SQL Update命令来更新一个看起来像这样的表:
ForEach($U in $Users){
$SQLAddInfo = "
UPDATE
Table1
SET
User_Last_Name = '$($User.sn)',
User_First_Name = '$($User.givenName)'
WHERE
User_ID = '$($User.samAccountName)'"
$SqlConnection.Open()
$SqlCmd.CommandText = $SQLaddInfo
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()
$SqlConnection.Close()
}
Run Code Online (Sandbox Code Playgroud)
现在问题是这大部分时间都有效,但是当我到达O'Neil的姓氏时,SQL认为撇号是SQL命令的终结符.我如何在这里使用变量,仍然有Powershell或SQL忽略撇号?
....一天后回来,因为我忘了谈论Table-Valued参数.
如果Get-ADUser这里的调用产生1000个结果,那么你将运行1000个SQL查询,这并不好玩.您可以通过表值参数一步将所有数据发送到服务器来做得更好,您可以在其中执行使用该参数仅运行一个查询的INSERT/SELECT .
| 归档时间: |
|
| 查看次数: |
37 次 |
| 最近记录: |