Назад | Перейти на главную страницу

.Net Ошибка поставщика данных SqlClient при сравнении ключей в установке PowerShell DB

Я пытаюсь установить базы данных на новый компьютер с Windows 7 с кодом PowerShell, предназначенным для Windows XP. Мне удалось исправить большинство проблем, поскольку я столкнулся с ними, но я застрял на этой конкретной проблеме в течение нескольких часов.

Я пытаюсь обновить ключи таблицы;

# here we need to update the indexes here
# if we are just seeding, dont bother updating, just write the Checksum property
#
if (!$whatif)
{
   if (!$seed)
   {
       # drop all foreign keys before trying to execute the SQL script
       for([int] $i=$table.triggers.count-1; $i -ge 0; $i--)
       {
           $table.triggers[$i].drop()
       }
       $table.Alter();
       trap { $_ | UTD-Write-Sql-Exception }
       $db.ExecuteNonQuery($filedata)
    }

Я получаю следующую ошибку.

Source     : .Net SqlClient Data Provider
Number     : 1776
State      : 0
Class      : 16
Server     : (machine name)
Message    : There are no primary or candidate keys in the referenced table 'dbo.PasswordPolicies' that match the referencing column list in the foreign key 'FK_PasswordPolicies_ad_PasswordPolicies'.
Procedure  : 
LineNumber : 1

Source     : .Net SqlClient Data Provider
Number     : 1750
State      : 0
Class      : 16
Server     : (machine name)
Message    : Could not create constraint. See previous errors.
Procedure  : 
LineNumber : 1

Exception calling "ExecuteNonQuery" with "1" argument(s): "ExecuteNonQuery failed for Database 'UT_Config
'. "
At C:\Users\(username)\Documents\Install\DatabaseInstallerFunctions.ps1:1885 char:40
+                     $db.ExecuteNonQuery <<<< ($filedata)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Любая помощь или идеи будут оценены.

Сообщение об ошибке указывает на нарушение внешнего ключа. Ваш код сбрасывает триггеры, но оставляет ограничения внешнего ключа