Sql Server - Unzureichender Ergebnisbereich zum Konvertieren des uniqueidentifier-Werts in char

8

Ich erhalte einen Fehler, wenn ich die SQL-Abfrage beim Kopieren von Daten von einer Tabelle in eine andere abspiele,

  

Msg 8170, Ebene 16, Status 2, Zeile 2   Unzureichender zu konvertierender Ergebnisbereich   uniqueidentifier Wert zu char.

Meine SQL-Abfrage ist,

%Vor%

Meine create table-Skripte sind,

%Vor%

Ich bin mir sicher, dass es ein Problem mit NEWID () gibt, wenn ich es herausnehme und durch einen String ersetze, der funktioniert.

Ich schätze jede Hilfe. Vielen Dank im Voraus.

    
Sam Keith 12.04.2011, 00:10
quelle

2 Antworten

19

Eine GUID benötigt 36 Zeichen (wegen der Bindestriche). Sie stellen nur eine Spalte mit 32 Zeichen zur Verfügung. Nicht genug, daher der Fehler.

    
Remus Rusanu 12.04.2011 00:14
quelle
3

Sie müssen eine von drei Alternativen verwenden

1, Eine Uniqueidentifier-Spalte, die sie intern als 16 Bytes speichert. Wenn Sie diese Spalte auswählen, wird sie automatisch im Format 8-4-4-4-12 für die Anzeige gerendert.

%Vor%

2, nicht empfohlen Ändern Sie das Feld in char (36), so dass es zum Format passt, einschließlich Strichen.

%Vor%

3, nicht empfohlen Speichern Sie es ohne Bindestriche, nur die 32-stelligen Komponenten

%Vor%     
RichardTheKiwi 12.04.2011 00:45
quelle

Tags und Links