SQL Server - INSERT ist fehlgeschlagen, da der 'ARITHABORT'
Ich verwenden NHibernate und SQL Server 2005 und ich habe einen index für eine berechnete Spalte in einer meiner Tabellen.
Mein problem ist, dass wenn ich einen Datensatz einfügen, um die Tabelle bekomme ich folgende Fehlermeldung:
INSERT ist fehlgeschlagen, da die folgenden SET-Optionen falsche Einstellungen aufweisen: 'ARITHABORT'
Benutze ich SET ARITHABORT ON;
vor meiner Einsätze, aber immer noch dieser Fehler.
InformationsquelleAutor S.M.Amin | 2013-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in heute dieses problem und habe es gelöst.
Erstellte ich ein gefilterter index für eine Spalte in sql server 2008 r2, würde aber bekomme diese Fehlermeldung beim einfügen.
Sah ich, dass diese Frage noch nicht vollständig beantwortet, da es sich vielleicht mühsam sein immer
SET ARITHABORT ON
in jedem stecken.Fand ich einen blog, die zeigten, es war der Kompatibilitätsgrad der Datenbank war das Problem. Ich änderte den Kompatibilitätsgrad von 80 (2000) 100 (2008) und das Problem war gelöst. Nicht sicher, wenn Sie den Kompatibilitätsgrad auf 90 zu lösen wäre oder nicht, aber einen Versuch Wert.
SQL Server-Kompatibilität Ebenen und Befehl ändern Sie hier. http://msdn.microsoft.com/en-us/library/bb510680.aspx
Wenn dies nicht funktioniert oder Sie nicht ändern können, den Kompatibilitäts-Modus, es ist eine andere Problemumgehung, indem ein trigger in der blog-ich Rede hier http://chrismay.org/2013/05/23/interesting-problem-with-sql-server-arithabort-filtered-indexes-calculated-columns-and-compatibility-mode-of-80/
Beachten Sie, dass diese änderung gemacht wurde, die auf eine test-Datenbank, und alle Anwendungen, die getestet werden sollen, bevor eine derartige Veränderung in der Produktion. Stellen Sie sicher, dass das ok ist mit der DBA vor, zu verändern.
Ich bin der DBA, und es war auf einer test-Datenbank, die Niederschrift eine wöchentliche Wiederherstellung aus der Produktion, um sicherzustellen, dass die back-ups sind gut 🙂 Haben mehr zu tun, zu testen, bevor es geändert werden kann in der Produktion.
Gut. Hinzugefügt werden sollten, um Ihre Antwort.
InformationsquelleAutor Brandon Frenchak
Für Einsätze auf Tabellen mit berechneten Spalten, müssen Sie diese Optionen festlegen:
Die option NUMERIC_ROUNDABORT muss auf OFF festgelegt sein, und die folgenden Optionen müssen eingestellt werden AUF:
Versuchen Sie dies, bevor Sie Ihre Beilage:
on your connection
? sollte ich diese auf der Sitzung Schöpfung in NHibernate? Ich nurARITHABORT
zuON
auf insert, update und delete.Diese sind session-level-Optionen, also nur einmal durchgeführt werden müssen, die auf die Verbindung, aber Sie können Sie mehrere Male, ohne ein problem verursacht. Siehe aktualisierte Antwort
Ich Fluent NHibernate. Können Sie mir zeigen, wie es zu konfigurieren?
Ich habe versucht, Ihre Lösung, aber es funktioniert immer noch nicht. Ich habe gelesen, dass Indizes für berechnete Spalten erstellt werden sollte, mit
ARITHABORT
auf. sollte es eingestellt werdenON
auf Schöpfung? Wie soll ich das machen?Machen Sie den gleichen Fehler? Es muss irgendeine Art von Interaktion mit NHibernate. Wenn Sie den index erstellen, also führen Sie die sql "create index ...", die beiden set-Zeilen von oben ersten.
InformationsquelleAutor muhmud
Ich auch festgestellt diesen Fehler beim ausführen einer gespeicherten Prozedur (die Datensätze aktualisiert) von einer Anwendung aus und das ist mein problem gelöst: https://support.microsoft.com/en-us/kb/305333
Also im Grunde, ich habe diesen Satz von codes, bevor Sie ausgeführt meine gespeicherten Prozedur
Hoffe, das jemand hilft.
InformationsquelleAutor Gellie Ann
Können Sie ändern Sie den Datenbank-Optionen, so dass die SET-Optionen Global verfügbar
InformationsquelleAutor Vackup
Öffnen Sie SQL Server Mgt Studio mit der rechten Maustaste auf den Servernamen, wählen Sie Eigenschaften, öffnen, Registerkarte Verbindung und überprüfen Sie dann das arithmetische abort option
InformationsquelleAutor Yakin79