[Ms SQL] Fehler den ich nicht begreife

Buba235

Erfahrenes Mitglied
Hallo Leute!

Ich bekomme immer eine Fehlermeldung wenn ich meinen SQL-Befehl ausführen möchte. Wenn ich auf Abfrage analysieren gehe, dann sagt er mir, dass alles in Ordnung ist, aber wenn ich den Befehl dann ausführe, komm immer folgende Fehlermeldung:

Server: Nachr.-Nr. 107, Schweregrad 16, Status 3, ...
Das Spaltenpräfix 'IMSI_Blacklist.dbo.tblIMSI_Stiering_Blacklist' stimmt mit keinem in der
Abfrage verwendeten Tabellen- oder Aliasnamen überein.

Ich hab mich schon überall umgesehen, werde aber aus den Erklärungen nicht schlau. Ich hoffe ihr könnt mir da helfen. Mein SQL-Befehl sieht so aus:

Code:
SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO
ALTER VIEW dbo.view_results_7 AS SELECT TOP 100 PERCENT dbo.view_results_7a.*,
dbo.table.MCC, dbo.table.MNC, ... dbo.table.HPRP 
FROM dbo.view_results_7a INNER JOIN
dbo.table ON dbo.view_results_7a.MCC COLLATE SQL_Latin1_CP1_CI_AS = dbo.table.MCC
WHERE dbo.view_results_7a.IMSI <> IMSI_Blacklist.tblIMSI_Stiering_Blacklist ORDER BY dbo.view_results_7a.BegTime DESC
GO SET_QUOTED IDENTIFIER OFF GO SET ANSI_NULLS ON GO


Das fette in dem Befehl verursahct den Fehler. Das ist eine Tabelle aus einer anderen Datenbank, die aber auf dem gleichen Server liegt. Ich weiß dass das bei MySQL geht. Da muss man nur den Datenbanknamen.Tabellennamen.Spalte angeben, aber bei Ms SQL scheint das nicht zu gehen. Ich bin echt am Verzweifeln und hoffe dass ihr mir nen Tipp geben könnt. Das wäre sehr hilfreich und wichtig für mich.


Gruß Buba
 
Hallo!

Ja in meiner Ausführung von da oben fehlt er - hab ich wohl vergessen in das Posting mit auf zu nehmen, aber in meinem Befehl steht er mit drin! Leider geht es nicht! Es kommt immer noch dieser Fehler, den ich oben beschrieben habe. Könnt ihr mir bitte helfen?


Gruß Buba
 
Server: Nachr.-Nr. 107, Schweregrad 16, Status 3, ...
Das Spaltenpräfix 'IMSI_Blacklist.dbo.tblIMSI_Stiering_Blacklist' stimmt mit keinem in der
Abfrage verwendeten Tabellen- oder Aliasnamen überein.
In der Fehlermeldung fehlt meiner Meinung nach die Bezeichnung des Feldes, auf das verwiesen werden soll. Ich gehe davon aus, dass "IMSI_Blacklist" der Name der Datenbank ist. "dbo" ist demnach der Besitzer der Tabelle "tblIMSI_Stiering_Blacklist".

Du könntest versuchen, die WHERE-Bedingung in einen JOIN "zu konvertieren". Zumindest arbeite ich persönlich lieber mit joins.

Gruß,
Pierre
 
Hallo!


Ja es wird auf IMSI_Blacklist verwiesen und dbo ist der Besitzer. Aber wie konvertiere ich das denn in ein Join Statement? Wie genau meinst du das denn?
 
Dein Code:
Code:
ALTER VIEW dbo.view_results_7 AS SELECT TOP 100 PERCENT dbo.view_results_7a.*,
dbo.table.MCC, dbo.table.MNC, ... dbo.table.HPRP 
FROM dbo.view_results_7a INNER JOIN
dbo.table ON dbo.view_results_7a.MCC COLLATE SQL_Latin1_CP1_CI_AS = dbo.table.MCC
WHERE dbo.view_results_7a.IMSI <> IMSI_Blacklist.tblIMSI_Stiering_Blacklist ORDER BY dbo.view_results_7a.BegTime DESC
Vorschlag:
Code:
ALTER VIEW dbo.view_results_7 AS SELECT TOP 100 PERCENT dbo.view_results_7a.*,
dbo.table.MCC, dbo.table.MNC, ... dbo.table.HPRP 
FROM dbo.view_results_7a INNER JOIN
dbo.table ON dbo.view_results_7a.MCC COLLATE SQL_Latin1_CP1_CI_AS = dbo.table.MCC INNER JOIN
IMSI_Blacklist.dbo.tblIMSI_Stiering_Blacklist ON dbo.view_results_7a.IMSI <> IMSI_Blacklist.dbo.tblIMSI_Stiering_Blacklist.Spaltenname
ORDER BY dbo.view_results_7a.BegTime DESC
Ist nur eine Idee, wie es funktionieren könnte. Musst den Spaltennamen der Tabelle tblIMSI_Stiering_Blacklist noch anpassen. Bin mir da auch nicht immer 100%ig sicher.
Wenn du MS SQL Server 2005 verwendest, kannst du die Abfrage auch im Editor anpassen. Da siehst du dann auch direkt die Verknüpfungen der beiden INNER-JOINs.
 
Hallo!


Also ich hab das jetzt mal so gemacht wie du es mir vorgeschlagen hast, aber dann kommt ein neuer Fehler:

Server: Nachr.-Nr. 446, Schweregrad 16, Status 9, ...

Konflikt der Sortierung für die not equal to-Operation kann nicht aufgelöst werden.

Also damit kann ich jetz beim besten Willen nichts mehr anfangen. Ich hab keine Ahnung was der jetzt von mir will.
 
Zurück