Gibt es eine Access-entspricht der SQL Server-NewId () - Funktion?
Ich geschrieben habe SQL-Anweisungen (gespeichert in einem text-Dokument), das laden von Daten in eine SQL Server-Datenbank. Diese Aussagen müssen täglich wiederholt werden. Einige der Aussagen, die Verwendung der NewId()
Funktion zum füllen eines keyed-Feld in der Datenbank, und diese funktioniert einwandfrei. Während ich bin in den Prozess des Schreibens eine Anwendung zu replizieren diese Aussagen, die ich verwenden möchte Access-Abfragen und-Makros anstelle von kopieren und einfügen von Abfragen in SQL Server, spart mir Zeit, auf einer täglichen basis. Alles ist in Ordnung, aber ich finde keine Funktion, ersetzen Sie den SQL - NewId()
Funktion. Nicht ein vorhanden oder gibt es eine Arbeit um? Ich bin mit SQL Server 2005 und Access 2007.
- "kopieren und einfügen von Abfragen in SQL server, spart mir Zeit, auf einer täglichen basis". Sie werden überrascht sein, was Sie tun können, SQL-Server, sparen Sie Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oben matt ' s Antwort, Sie könnten einfach mit einem pass-through-Abfrage und verwenden Sie einfach Ihren bestehenden, funktionierenden Abfragen aus MS-Access.
Eine Lösung wäre das einfügen der stguidgen () - Funktion im code, wie Sie können es hier finden: http://trigeminal.fmsinc.com/code/guids.bas
Die einzige Lösung die ich mir denken kann wäre, definieren Sie die Spalte in die access-Datenbank vom Typ "Replikations-ID" und stellen Sie es ein AutoWert-Feld. Das generiert automatisch eine eindeutige GUID, die für jede Zeile, und Sie brauchen nicht zu verwenden newid() an alle. In SQL server, würden Sie nur den Standardwert für die Spalte "newid()".
Wieder, es scheint Verwirrung hier.
Wenn ich verstehen richtig:
Haben Sie ein Access-front-end.
Sie haben eine SQL Server 2005-back-end.
Was Sie brauchen, ist die Fähigkeit zum generieren der GUID der SQL Server-Tabelle. So, die Antworten, die vorschlagen, das hinzufügen einer AutoWert-Feld vom Typ Replikationsid in Access nicht gehen, um Hilfe, wie die Tabelle ist nicht einer Jet-Tabelle, sondern eine SQL Server-Tabelle.
Den SQL-können sicher ausgeführt werden, wie ein Pass-through-Abfrage, welche Seite aus alles, um den SQL-Server für die Verarbeitung, aber ich Frage mich, warum gibt es nicht einen Standardwert für dieses Feld in der SQL-Server? Kann SQL Server 2005-Tabellen nicht NewId() als Standardwert? Oder gibt es eine andere Methode für einen Bereich füllen Sie mit einer neuen GUID? Ich glaube mich zu erinnern etwas über die Verwendung von GUIDs und Kennzeichnung "not for replication" (ich habe keinen Zugriff auf einen SQL Server in dem moment zu suchen, diese bis).
Scheint mir, es ist besser, lassen Sie die Datenbank-engine zu tun diese Art der Sache, anstatt der Ausführung einer Funktion in SQL zu tun, aber vielleicht kann jemand mich aufklären, warum bin ich falsch.