Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Fehler beim Überprüfen des Standards für die Spalte 'rowguid' (https://www.delphipraxis.net/165799-fehler-beim-ueberpruefen-des-standards-fuer-die-spalte-rowguid.html)

norwegen60 16. Jan 2012 21:50

Datenbank: MsSQL • Version: 2008 R2 • Zugriff über: UniDac

Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Hallo zusammen,

ich habe eine DB die ich seit einiger Zeit per Merge-Replikation replizieren. Beim Erstellen (noch mit SQL 2005) wurde in allen Tabellen automatisch die Spalte RowGuid mit dem Standardwert (newsequentialid()) eingefügt. Wenn ich jetzt in solch einer Tabelle per Management-Studio etwas ändere kommt beim Speichern die Meldung
Zitat:

Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
Wenn ich den Standardwert auf newid() ändere, kommt die Meldung nicht mehr.

Es kann doch nicht sein, dass die von MsSQL selbst angelegt Definition falsch ist. Was also tun. Alles auf NewID ändern oder lassen

Viele Grüße
Gerd

shmia 17. Jan 2012 11:05

AW: Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Hat die Datenbank evtl. noch einen älteren Kompatibilitätsgrad (compatibility level) als der Server?

norwegen60 17. Jan 2012 13:10

AW: Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Hallo Andreas,

der Kompatibilitatsgrad der DB ist Server 2005 der MsSQL-Server selber ist 2008 R2. Ich hab die DB mal testweise auf SQL 2008 gesetzt. Die Meldung bleibt aber dieselbe.

Grüße
Gerd

shmia 17. Jan 2012 15:33

AW: Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Lass Dir das "CREATE TABLE" Statement vom Management Studio erzeugen und ändere dann den Tabellennamen ab.
Wenn du das Script ausführst solltest du eine weitere Tabelle mit genau der gleichen Struktur bekommen.
Hat diese Tabelle das gleiche Problem?
Wenn du das Script hier einstellst könnte man es auch auf einem anderen SQL Server ausführen und ebenfalls testen.

jobo 17. Jan 2012 16:00

AW: Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Vorweg: Ich hab keine Ahnung von MSSQL.

Ich glaube aber, dass es ein Datenproblem ist.

Wenn es mit newid funktioniert und die Fehlermeldung für newsquentialid "Fehler bei Überprüfen des Standards" lautet schließt man doch:
Es gibt einen Constraint Unterschied der beiden Funktionen. Sequential werte ich dabei mal als fortfolgend/aufsteigend. Bei NewID fehlt dieser Constraint.

Du hast also vermutlich ID in der Spalte, die nicht mehr gegen "aufsteigend" validiert werden können. Lässt Du diesen Constraint weg und nimmst nur newid geht es ja dann auch.

Also einfach so lassen oder Daten aufräumen.
Prüfen ließe sich meine Annahme mit einer Auswertung der ID Sequence.

norwegen60 24. Mär 2015 21:00

AW: Fehler beim Überprüfen des Standards für die Spalte 'rowguid'
 
Hallo,

ich habe das Thema etwas aus den Augen verloren da es eigentlich nur eine Unschönheit ist und wollte es jetzt wieder aufgreifen.
Ich habe mal eine neue Tabelle mit folgendem Sript erstellt
Code:
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Test](
   [ID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
   [VorNr] [nvarchar](2) NULL,
   [Benennung] [nvarchar](40) NULL,
   [ServOrt] [nchar](1) NULL,
   [ErstUserID] [int] NULL,
   [ErstDat] [datetime] NULL,
   [LastUserID] [int] NULL,
   [LastDat] [datetime] NULL,
   [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL,
 CONSTRAINT [PK__Test] PRIMARY KEY CLUSTERED
(
   [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Test] ADD CONSTRAINT [DF_Test_rowguid] DEFAULT (newsequentialid()) FOR [rowguid]
GO
Danach im MsSQL Management Studio mit "Oberste 200 Zeilen bearbeiten" einen Datensatz eingefügt
Danach über "Entwerfen" das Feld Test nvarchar(10) ans Ende der Tabelle gehängt
Beim Schließen kommt wieder die Meldung
Zitat:

Tabelle 'Test'
- Fehler beim Überprüfen des Standards für die Spalte 'rowguid'.
Grüße
Gerd


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz