ASP.NET und Microsoft SQL-Server

Microsoft ASP.NET 4.0 Microsoft SQL-Server 2008 R2

Willkommen auf asp-net-sql-server.de, dem Forum für ASP.NET und SQL-Server Experten! Hier findest Du alle Antworten zur neuesten Generation: Microsoft SQL-Server 2008 R2 als SQL-Datenbank für Micrsoft ASP.NET 4.0 (.NET-Framework 4.0). Auch Vorgängerversionen (SQL-Server 2005, 2003, 2000; .NET 3.5 SP1; .NET 2.0; .NET 1.0) sind hier vertreten.

inner-join Innere Verknüpfung über mehrere Zugriff Db's ms-access

ich bin Re-eine Anwendung für ein ASP.NET-CMS, das ich nicht wirklich mag. Ich habe Som Verbesserungen in der Leistung nur zu entdecken, dass nicht nur tut dieses CMS MS SQL verwenden, aber einige Benutzer "einfach" verwenden Sie MS Access Datenbank.

das Problem ist, dass ich haben einige Tabellen welche I inneren-Joins, die mit der MS Access-Version sind in zwei verschiedenen Dateien. Ich darf nicht einfach zu die Tabellen in die andere Mdb Datei.

bewegen ich jetzt versucht bin, herauszufinden, ein guter Weg, um "inner-Join" in mehreren Access-Db-Dateien?

, es wäre wirklich schade, wenn ich haben alle Daten abrufen und das tun Sie es programmgesteuert!

Dank



Wenn Sie Zugang zu den MDB-Dateien haben, und sind in der Lage, Sie zu ändern, sollten Sie verknüpfte Tabellen verwenden. Zugang bietet die Möglichkeit zum Verknüpfen einer Verbindung mit externer Daten (in anderen MDBs, in Excel-Dateien, auch in SQL Server oder Oracle), und dann können Sie Ihre tritt gegen die Links.

ich empfehlen würde dringend, Performance-Tests eine solche Option. Wenn es machbar ist, Benutzer von der Access-Datenbanken auf ein anderes System (sogar SQL Express), zu migrieren, die auch vorzuziehen wäre--letzte ich habe, gibt es keine 64-Bit-JET-Treiber für ODBC mehr, so wenn die app jemals in einer 64-Bit-Umgebung gehostet wird, diese Benutzer abgespritzt werden werden.



Sie nicht brauchen, die verknüpfte Tabellen überhaupt. Es gibt zwei Ansätze zur Verwendung von Daten aus verschiedenen MDBs, die ohne eine verknüpfte Tabelle verwendet werden können. Die erste besteht darin, verwenden Sie "IN"c:\MyDBs\Access.mdb' "in der FROM-Klausel Ihrer SQL. Eine Ihrer gespeicherten Abfragen wäre wie:

  SELECT MyTable.* FROM MyTable IN 'c:\MyDBs\Access.mdb'  

und die andere gespeicherte Abfrage wäre:

  SELECT OtherTable.* FROM OtherTable IN 'c:\MyDBs\Other.mdb'  

Sie könnte dann Speichern dieser Abfragen und verwenden Sie dann die gespeicherten Abfragen, die zwei Tabellen.

Alternativ beizutreten, können Sie verwalten Sie alle in einer einzigen SQL­Anweisung angeben den Pfad der MDB-Quelldatei für jede Tabelle in der FROM-Klausel so:

  SELECT MyTable.ID, OtherTable.OtherField aus [c:\MyDBs\Access.mdb].MyTable INNER JOIN [c:\MyDBs\Other.mdb].OtherTable ON MyTable.ID = OtherTable.ID  

halten eine Sache im Auge, though:

das Jet-Abfrageoptimierer notwendigerweise werden nicht die Indizes aus diesen Tabellen verwenden, für den Join (ob es Ihnen verwenden wird für Kriterien für einzelne Felder ist eine andere Frage), so dass dies extrem langsam sein könnte (in meinen Tests, ist es nicht, aber ich bin nicht benutze große Datasets zum Testen). Aber das Leistungsproblem für verknüpfte Tabellen, auch gilt.



innen einen Access DB Sie erstellen können, "verknüpften Tabellen", die auf der anderen DB zeigen. Sie sollten in der Lage, um die Tabellen abzufragen, als ob Sie beide in der gleichen DB.

, die es bedeutet existierte, Sie müssen eine der Datenbanken zum Erstellen der virtuellen Tabelle ändern, werden (glaube ich), aber mindestens Sie sind nicht wirklich verschieben der Daten, nur machen einen Zeiger darauf



innerhalb von Access, können Sie entfernte Tabellen durch "Tabellenverknüpfungs-Manager" hinzufügen. Sie könnten die Links zu einer Access-Datei oder andere hinzufügen, oder Sie erstellen eine neue Access-Datei, die die Tabellen in beiden Dateien verweist. Nachdem dies geschehen ist, sind die Inner-Join-Abfragen nicht anders, als Sie in einer einzelnen Datenbank zu tun.