Creare tabella SQL Server da query Access

di il
11 risposte

Creare tabella SQL Server da query Access

Ciao a tutti,
ho appena migrato un mio DB Access su SQL Server Express, perchè ormai avevo raggiunto le dimensioni massime di un DB Access, ed ora uso Access come front-end e SQL Server come DB.

Tutto bene, ma mi resta un problema per cui chiedo aiuto: in Access ho una query di creazione tabella che legge una tabella e ne crea un'altra con alcuni dati; poi ho altre query che leggono altre tabelle e accodano i dati in quella creata.

Ho collegato via ODBC la tabella SQL Server ad Access, ma quando eseguo la query di creazione tabella questa cancella la tabella collegata SQL Server, e crea una tabella locale di Access invece di ricreare la tabella su SQL Server. Copio lo statement SQL così magari è più chiaro.

La domanda è: come faccio a dire ad Access che deve ricreare la tabella su SQL Server, e non in locale?

Grazie. Ciao.
SELECT [dbo_Tipo Rotabile].[Descrizione tipo], dbo_Ferrovie.[Descrizione Ferrovia], dbo_Locomotrici_scala_H0.[Id ferrovia], dbo_Locomotrici_scala_H0.Codice, dbo_Locomotrici_scala_H0.Numero_di_serie, dbo_Locomotrici_scala_H0.[Digitale indirizzo], dbo_Locomotrici_scala_H0.[Digitale tipo] INTO [dbo_Digitali_per_CV]
FROM [dbo_Tipo Rotabile] RIGHT JOIN (dbo_Ferrovie RIGHT JOIN dbo_Locomotrici_scala_H0 ON dbo_Ferrovie.[Id Ferrovia] = dbo_Locomotrici_scala_H0.[Id ferrovia]) ON [dbo_Tipo Rotabile].Tipo = dbo_Locomotrici_scala_H0.Tipo
WHERE (((dbo_Locomotrici_scala_H0.[Digitale tipo])<>"" And (dbo_Locomotrici_scala_H0.[Digitale tipo])<>"no"))
ORDER BY dbo_Locomotrici_scala_H0.[Digitale indirizzo];
Nota: Le tabelle dbo_Tipo Rotabile, dbo_Ferrovie, dbo_Locomotrici_scala_H0 sono in SQL Server. La dbo_Digitali_per_CV è anche lei in SQL Server e collegata via ODBC, ma la query cancella il collegamento e ricrea una dbo_Digitali_per_CV locale di Access, invece di ricreare la tabella su SQL Server.

11 Risposte

  • Re: Creare tabella SQL Server da query Access

    Resto sempre molto allertato quando sento parlare di creazione tabelle 9 volte su 10 sono frutto di errate considerazioni tecniche.
    Dando per scontato sia necessario, come la esegui la query di creazione tabella...? Su quale oggetto...?
  • Re: Creare tabella SQL Server da query Access

    Alex, provo a descrivere cosa voglio fare, così magari mi dai una soluzione alternativa: Ho diverse tabelle, con colonne diverse, e le tabelle si chiamano Locomotrici, Binari, Segnali, Carrozze, Vagoni. Tutte le tabelle contengono un campo Tipo_digitale e un campo Numero_CV. Io voglio creare una lista in cui ci siano tutti i record delle diverse tabelle, con il Tipo_digitale e il Numero_CV valorizzati diversi da zero, ed altri campi che vado a recuparare dai vari record. Il tutto deve finire in un report di Access.
    Come posso fare?

    Ciò detto mi resta la curiosità: Ho quelle tabelle (prima in Access ora in SQL Server), come faccio a generare una tabella di SQL Server che mi riporti i dati secondo la logica qui sopra? (Gli accodamenti funzionano OK, è la creazione che non va)

    Molte grazie.
  • Re: Creare tabella SQL Server da query Access

    Aldozan ha scritto:


    le tabelle si chiamano Locomotrici, Binari, Segnali, Carrozze, Vagoni. Tutte le tabelle contengono un campo Tipo_digitale e un campo Numero_CV.
    Tutte queste tabelle devono confluire in un'unica tabella Cose o Oggetti e avere un campo aggiuntivo Tipologia che distingue di cosa si tratta (Locomotrice, Binario, Segnale, Carrozza, Vagone…).
  • Re: Creare tabella SQL Server da query Access

    OsvaldoLaviosa ha scritto:


    Aldozan ha scritto:


    le tabelle si chiamano Locomotrici, Binari, Segnali, Carrozze, Vagoni. Tutte le tabelle contengono un campo Tipo_digitale e un campo Numero_CV.
    Tutte queste tabelle devono confluire in un'unica tabella Cose o Oggetti e avere un campo aggiuntivo Tipologia che distingue di cosa si tratta (Locomotrice, Binario, Segnale, Carrozza, Vagone…).
    Esatto. ed è esattamente quello che faccio creando un nuova tabella, e poi accodando i record delle altre. Ma il problema è che Access (che uso come front-end) crea una tabella locale e non una tabella nel SQL Server che uso come DB
  • Re: Creare tabella SQL Server da query Access

    Aldozan ha scritto:


    è esattamente quello che faccio creando un nuova tabella, e poi accodando i record delle altre.
    È errato questo approccio. Usa le "query di selezione" con filtro su "Locomotrice", "Binario",...ecc...
  • Re: Creare tabella SQL Server da query Access

    Aldozan ha scritto:


    La domanda è: come faccio a dire ad Access che deve ricreare la tabella su SQL Server, e non in locale?
    Sbagli metodologia!
    Tu devi creare una vista logica delle tabelle, direttamente in SQL SERVER, invece di duplicare i dati in un'altra tabella.

    Concettualmente :
    - crei una View (ovvero una vista logica dei dati - di fatto è una query di selezione memorizzata nel server)
    - la view è costantemente aggiornata ai dati presenti nelle tabelle incluse nella view stessa
    - la view è una tabella logica (eventualmente anche aggiornabile)
    - lato access semplicemente ti ritrovi una nuova tabella da linkare (la view creata nel server)

    Un link : https://docs.microsoft.com/it-it/sql/relational-databases/views/views?view=sql-server-ver15
  • Re: Creare tabella SQL Server da query Access

    Grazie a tutti.
    Ho ricevuto la risposta da un forum inglese: basta definire una fonte dati ODBC e usare quella come prefisso del DB. Semplice, e funziona.

    Gli inglesi sono prammatici, competenti, e non fanno tanta filosofia.

    Comunque mi avete fatto pensare e invece di cancellare e ricreare la table faccio un delete e riaccodo, e la connessione a SQL Server funziona.

    Ciao. Aldo
  • Re: Creare tabella SQL Server da query Access

    Per correttezza verso gli altri utenti del forum e per rispetto al regolamento mi sono trattenuto dal cancellare la mia risposta ...
    In fondo sono Italiano, sono incompetente e faccio perdere tempo fornendo soluzioni tecniche totalmente inadeguate alle richieste

    May un english forum be with you.
  • Re: Creare tabella SQL Server da query Access

    max.riservo ha scritto:


    Per correttezza verso gli altri utenti del forum e per rispetto al regolamento mi sono trattenuto dal cancellare la mia risposta ...
    In fondo sono Italiano, sono incompetente e faccio perdere tempo fornendo soluzioni tecniche totalmente inadeguate alle richieste

    May un english forum be with you.
    grande Max
    apprezzo veramente l'impegno , e gia' Alex avrebbe dovuto mettere una pulce nell'orecchio dalla prima battuta... ma...

    se uno vuole proprio spararsi in un piede, non puoi riuscire ad impedirglielo
    salutoni romagnoli
    --
    Andrea
  • Re: Creare tabella SQL Server da query Access

    Aldozan ha scritto:


    Gli inglesi sono prammatici, competenti, e non fanno tanta filosofia.

    Ciao. Aldo
    Lo sai che per una semplice query di cancellazione ed accodamento, bastava il metodo standard...? Ovvero sulla linked table locale...?
    Serve usare la testa sia per fare le domande che per capire le risposte... filosofia...

    Ora, passi che tecnicamente dobbiamo stendere un velo su quanto letto però l'italiano... secondo me intendevi pragmatici, la prammatica mi pare sia altro... n'est pas...?
    In ogni caso non è filosofia ma tecnica e rispondere ad una domanda basata su concetti sbagliati dando una risposta "pezza"... rende chi risponde simpatico ma lascia il richiedente sul livello di partenza... e qui siamo bassi.
    A me pare sinonimo di poca considerazione... "visto che capisci poco do una risposta che ti accontenta"... deve essere una soddisfazione grande... diciamo quasi prammatica...

    Vabbe dai solo per il crosspost meritava di essere chiuso.
  • Re: Creare tabella SQL Server da query Access

    Aldozan ha scritto:


    ...
    Gli inglesi sono prammatici, competenti, e non fanno tanta filosofia.
    ...

    a me pure me piace de piu' , ma de piu' assai la soluzione all'itagliana
Devi accedere o registrarti per scrivere nel forum
11 risposte