SQL-Konvertierung von varchar in uniqueidentifier scheitert in Sicht

Bin ich stecken auf das folgende Szenario.
Ich habe eine Datenbank mit einer Tabelle mit Kundendaten und eine Tabelle, wo ich Datensätze für die überwachung, was Los ist auf unserer B2B-Website.

Die Kunden-Tabelle ist wie folgt:

  • ID, int, not null
  • GUID, uniqueidentfier, not null, primary key
  • Andere Sachen...

Die monitoring-Tabelle:

  • ID, int, not null
  • USERGUID, uniqueidentifier, null
  • PARAMETER2, varchar(50), null
  • Andere Sachen...

In PARAMETER1 sind Kunden guids als wel als andere Datentypen gespeichert.

Nun kam die Frage auf, um unsere Kunden nach Ihrem letzten Besuch das Datum der zuletzt besuchten Kunden kommen müssen, auf der Oberseite ein raster.

Bin ich mit Entity Framework und ich hatte Probleme mit dem zu vergleichen, den string und die guid-Typ, also beschloss ich, einen Blick auf meine monitoring-Tabelle:

SELECT        
   ID, 
   CONVERT(uniqueidentifier, parameter2) AS customerguid, 
   USERguid, 
   CreationDate
FROM            
   MONITORING
WHERE        
   (dbo.isuniqueidentifier(parameter2) = 1) 
   AND 
   (parameter1 LIKE 'Customers_%' OR parameter1 LIKE 'Customer_%')

Import der anzeigen in EF und meine Linq-Abfrage. Wieder nichts, also habe ich extrahiert die generierte SQL-Abfrage. Beim testen der Abfrage im SQL Management Studio habe ich die folgenden Fehler:
Fehler bei der Konvertierung bei der Konvertierung von einer Zeichenfolge vom Datentyp uniqueidentifier.

Das problem liegt in folgendem Ausschnitt (vereinfacht für diese Frage, sondern gibt auch einen Fehler:

SELECT *,
    (
        SELECT 
            [v_LastViewDateCustomer].[customerguid] AS [customerguid]
        FROM [dbo].[v_LastViewDateCustomer] AS [v_LastViewDateCustomer]
        WHERE c.GUID = [v_LastViewDateCustomer].[customerguid]
    )

FROM CM_CUSTOMER c

Aber wenn ich eine joinen, ich bekomme meine Ergebnisse:

SELECT *
FROM CM_CUSTOMER c
    LEFT JOIN
    [v_LastViewDateCustomer] v
on c.GUID = v.customerguid

Habe ich versucht, ein SQL fiddle, aber es ist die Arbeit auf dieser Website. http://sqlfiddle.com/#!3/66d68/3

Wer kann mir in die richtige Richtung?

Welche version von SQL Server?
SQL Server 2012

InformationsquelleAutor CyclingFreak | 2013-12-09

Schreibe einen Kommentar