Ho scritto istruzioni SQL (memorizzate in un documento di testo) che caricano dati in un database SQL Server. Queste affermazioni devono essere ripetute ogni giorno. Alcune delle istruzioni utilizzano la funzione NewId()
per popolare un campo con chiave nel database e questo funziona correttamente. Mentre sono in procinto di scrivere un'applicazione per replicare queste istruzioni, desidero utilizzare query e macro di Access invece di copiare e incollare query in SQL Server, risparmiando così tempo ogni giorno. Funziona tutto bene ma non riesco a trovare alcuna funzione che sostituirà la funzione SQL NewId()
. Esiste o c'è un lavoro in giro? Sto usando SQL Server 2005 e Access 2007.Esiste un equivalente di Access della funzione NewId() di SQL Server?
risposta
L'unica soluzione che posso pensare sarebbe quella di definire la colonna nel tuo database di accesso di tipo "ID di replica" e renderla un campo di numerazione automatica. Questo genererà automaticamente un GUID univoco per ogni riga e non sarà necessario utilizzare newid(). Nel server SQL, si dovrebbe semplicemente impostare il valore predefinito per la colonna "newid()".
non funzionano correttamente in Access: http://trigeminal.com/usenet/usenet011.asp?1033. Ma non sono necessari - tutto ciò che è necessario è un numero automatico. –
Oops - ha letto erroneamente la domanda originale (non si è reso conto che NewID() ha generato in modo specifico un GUID). Tuttavia, i GUID non funzionano ancora bene in Access. –
perché GUID non funziona bene in Access ?? –
Oltre alla risposta di Matt, è possibile utilizzare semplicemente uno pass-through query e utilizzare semplicemente le query esistenti e funzionanti da MS Access.
Ancora una volta, sembra esserci confusione qui.
Se ho la comprensione correttamente:
Hai front end Access.
Si dispone di un back-end di SQL Server 2005.
Quello che ti serve è la possibilità di generare il GUID nella tabella di SQL Server. Quindi, le risposte che suggeriscono di aggiungere un campo di tipo AutoNumber di tipo ReplicationID in Access non aiuteranno, poiché la tabella non è una tabella Jet, ma una tabella SQL Server.
SQL può essere eseguito come query passthrough, che passerà tutto a SQL Server per l'elaborazione, ma mi chiedo perché non esiste un valore predefinito per questo campo in SQL Server? Le tabelle di SQL Server 2005 non possono avere NewId() come valore predefinito? O c'è qualche altro metodo per avere un campo popolato con un nuovo GUID? Mi sembra di ricordare qualcosa sull'utilizzo dei GUID e sul loro contrassegno "non per la replica" (non ho accesso a un server SQL in questo momento per cercare questo).
A mio parere è meglio lasciare che il motore di database faccia questo genere di cose, piuttosto che eseguire una funzione nel tuo SQL per farlo, ma forse qualcuno può illuminarmi sul perché mi sbaglio su questo.
Una soluzione potrebbe essere quella di inserire la funzione stguidgen() nel codice, come si può trovare qui: http://trigeminal.fmsinc.com/code/guids.bas
- 1. newid() all'interno della funzione sql server
- 2. Esiste un equivalente alla funzione SUBSTRING in MS Access SQL?
- 3. creazione della funzione tramite newID()
- 4. Esiste un Oracle equivalente a OUTPUT INSERTED di SQL Server. *?
- 5. Esiste un equivalente PostgreSQL del profiler di SQL Server?
- 6. Esiste un equivalente Python della funzione conv2 di MATLAB?
- 7. Esiste un equivalente Java della funzione http_build_query di PHP?
- 8. Esiste un equivalente in C++ della funzione explode() di PHP?
- 9. Esiste un equivalente della funzione di intervallo Python in MATLAB?
- 10. esiste un equivalente della funzione egen di Stata?
- 11. Esiste un equivalente Elixir della funzione `try` di Rails?
- 12. Equivalente Sql Server di una funzione aggregata COUNTIF
- 13. Equivalente della funzione di divisione in T-SQL?
- 14. Come esportare un intero database di Access in SQL Server?
- 15. SQL Server OFFSET equivalente
- 16. equivalente R della funzione spia di Matlab
- 17. SQL Server: qualsiasi equivalente di strpos()?
- 18. TrimEnd equivalente in SQL Server
- 19. Equivalente basato sul Web di Microsoft Access?
- 20. Equivalente PostgreSQL della funzione PERCENTILE_CONT di Oracle
- 21. Esiste un equivalente PostgreSQL di SELECT @@ ROWCOUNT in T-SQL?
- 22. È possibile impostare la colonna predefinita su NewId() di SQL Server?
- 23. Hashset equivalente in SQL Server
- 24. equivalente di MySQL su DUPLICATE KEY UPDATE in SQL Server
- 25. Esiste un equivalente di str_replace in C++?
- 26. equivalente PHP della funzione parseInt di JavaScript?
- 27. Equivalente Python della funzione "ismember" di MATLAB
- 28. Esiste un equivalente Java della libreria Ostrich di Twitter?
- 29. Esiste un equivalente della primitiva "runtime" di Lisp in Scheme?
- 30. Esiste un equivalente ColdFusion di phpinfo()
"query di copia e incolla in SQL Server, mi risparmio di tempo su base giornaliera". Potresti essere sorpreso di ciò che puoi fare in SQL Server per farti risparmiare tempo. I GUID –