Ich habe SQL-Anweisungen geschrieben (in einem Textdokument gespeichert), die Daten in eine SQL Server-Datenbank laden. Diese Aussagen müssen täglich wiederholt werden. Einige der Anweisungen verwenden die NewId()
-Funktion, um ein Schlüsselfeld in der Datenbank zu füllen, und das funktioniert einwandfrei. Während ich gerade eine Anwendung schreibe, um diese Anweisungen zu replizieren, möchte ich Access-Abfragen und Makros verwenden, anstatt Abfragen in SQL Server zu kopieren und einzufügen, wodurch ich täglich Zeit sparen kann. Alles funktioniert gut, aber ich kann keine Funktion finden, die die SQL NewId()
Funktion ersetzen wird. Gibt es einen oder gibt es eine Arbeit? Ich verwende SQL Server 2005 und Access 2007.Gibt es eine Access-Entsprechung der SQL Server NewId() - Funktion?
Antwort
Die einzige Problemumgehung, die ich denken könnte wäre, die Spalte in Ihrer Access-Datenbank vom Typ "Replikations-ID" zu definieren und es zu einem Auto-Nummer-Feld. Dadurch wird automatisch eine eindeutige GUID für jede Zeile generiert, und Sie müssen newid() überhaupt nicht verwenden. In SQL Server würden Sie einfach den Standardwert für die Spalte "newid()" festlegen.
GUIDs funktionieren nicht gut in Access: http://trigeminal.com/usenet/usenet011.asp?1033. Aber sie werden nicht benötigt - alles, was benötigt wird, ist eine Autonummer. –
Hoppla - die ursprüngliche Frage falsch gelesen (nicht realisiert, dass NewID() speziell eine GUID generiert hat). GUIDs funktionieren jedoch immer noch nicht gut in Access. –
Warum funktionieren GUIDs nicht gut in Access? –
Zusätzlich zur Antwort von matt können Sie einfach eine pass-through query verwenden und einfach Ihre vorhandenen, funktionierenden Abfragen von MS Access verwenden.
Auch hier scheint es Verwirrung zu geben.
Wenn ich Verständnis richtig:
Sie haben einen Access-Frontend.
Sie haben ein SQL Server 2005-Back-End.
Was Sie benötigen, ist die Möglichkeit, die GUID in der SQL Server-Tabelle zu generieren. Daher schlagen Antworten, die vorschlagen, ein AutoNumber-Feld vom Typ ReplicationID in Access hinzuzufügen, nicht zu helfen, da die Tabelle keine Jet-Tabelle, sondern eine SQL Server-Tabelle ist.
Die SQL kann sicherlich als Passthrough-Abfrage ausgeführt werden, die alles an den SQL Server zur Verarbeitung übergeben, aber ich frage mich, warum gibt es keinen Standardwert für dieses Feld in SQL Server? Können SQL Server 2005-Tabellen NewId() als Standardwert nicht haben? Oder gibt es eine andere Methode, um ein Feld mit einer neuen GUID zu füllen? Ich erinnere mich an etwas über die Verwendung von GUIDs und das Markieren von "nicht für die Replikation" (ich habe im Moment keinen Zugriff auf einen SQL Server, um das herauszufinden).
Scheint mir, es ist besser, die Datenbank-Engine so etwas tun zu lassen, anstatt eine Funktion in Ihrem SQL auszuführen, aber vielleicht kann mir jemand erklären, warum ich falsch liege.
Eine Lösung wäre es, die stguidgen() Funktion in Ihrem Code einfügen, wie Sie es hier finden: http://trigeminal.fmsinc.com/code/guids.bas
- 1. newid() innerhalb SQL Server-Funktion
- 2. Wie erstellt SQL Server uniqueidentifier mit newid()?
- 3. Erstellen von Funktion mit newID()
- 4. Gibt es eine Möglichkeit, FIRST() in SQL Server auszuführen?
- 5. Gibt es einen SQL Server Profiler für SQL Server Express?
- 6. Gibt es eine Standardübung zum Synchronisieren von SQL Server-Tabellen?
- 7. Gibt es eine lineare Regressionsfunktion in SQL Server?
- 8. Gibt es eine effizientere Methode, um Duple in Sql-Server
- 9. Gibt es eine MAKELONGLONG-Funktion?
- 10. Gibt es eine JavaScript-Funktion ähnlich der Python Counter-Funktion?
- 11. Gibt es eine MySQL-Funktion wie die TRY/CATCH-Blöcke von SQL Server 2005?
- 12. Gibt es eine Implementierung von Tom Kytes STRAGG-Funktion, die SQL Server unterstützt?
- 13. Gibt es eine umgekehrte Funktion zu ISNULL in SQL Server? Zu tun Ist nicht null?
- 14. Wie eine gespeicherte Funktion anzuzeigen - SQL Server
- 15. Gibt es in PostgreSQL eine SSIS-ähnliche Funktion?
- 16. Gibt es einen "Test" -Server für SQL Server?
- 17. SQL - Rückgabe zufällige Zeilen aus einer temporären Tabelle mit NEWID()
- 18. Gibt es eine SQL-Abfrage wie diese?
- 19. T-SQL-Case-Anweisung seltsame Verhalten mit newid() als Zufallsquelle
- 20. Gibt es räumliche Datenfunktionen für MS Sql Server 2005?
- 21. Gibt es eine Glibc-Hash-Funktion?
- 22. Gibt es eine Hash-Funktion für Datumsangaben?
- 23. Gibt es eine Heaviside-Step-Funktion?
- 24. Gibt es eine einzelne Funktion Iterables Werte
- 25. Gibt es eine "map" -Funktion in PHP?
- 26. gibt es eine nicht übereinstimmen Funktion
- 27. Gibt es eine Radix-Funktion in Ruby?
- 28. Gibt es eine getInt-Funktion auf Haskell?
- 29. Gibt es eine SQL-Parameterbindung für Arrays?
- 30. Gibt es eine Reverse-Map-Funktion?
„Kopieren und Einfügen von Abfragen in SQL Server, damit mich auf einer täglichen Basis Zeitersparnis“. Sie könnten überrascht sein, was Sie in SQL Server tun können, um Zeit zu sparen. –