gpt4 book ai didi

sql-server - 如何防止MS SQL数据库中出现重复项?

转载 作者:行者123 更新时间:2023-12-03 00:14:27 26 4
gpt4 key购买 nike

我有一个PowerShell脚本,可以将Eventviewer中的数据写入MS SQL数据库。

$events = Get-WinEvent @{LogName = "System"; ID = 4720,4726,4741,4743,4727,4730,4728,4729,4740,4767} | Select-Object ID, MachineName, Message, TimeCreated  

$connectionString = "Data Source=Server\INSTANZ;Integrated Security=true;Initial Catalog=Database;"
$bulkCopy = new-object ("Data.SqlClient.SqlBulkCopy") $connectionString
$bulkCopy.DestinationTableName = "Table"
$dt = New-Object "System.Data.DataTable"

# build the datatable
$cols = $events | select -first 1 | get-member -MemberType NoteProperty | select -Expand Name
foreach ($col in $cols) {$null = $dt.Columns.Add($col)}

foreach ($event in $events)
{
$row = $dt.NewRow()
foreach ($col in $cols) { $row.Item($col) = $event.$col }
$dt.Rows.Add($row)
}

# Write to the database!
$bulkCopy.WriteToServer($dt)

MS SQL数据库具有行ID,机器名称,消息和TimeCreated。

当我第一次运行脚本时,它可以完美运行。当我再次运行脚本时,它将再次将所有数据写入数据库。

如何只写两次运行之间的差异?

最佳答案

尝试使用sql来做到这一点

您将需要确定sql表中的哪些列使您的记录唯一

然后使用唯一键在检查记录不存在的同时执行sql插入

关于sql-server - 如何防止MS SQL数据库中出现重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39291558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com