Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [SQL Server] Copiare tabelle

    Ciao a tutti,
    è da un po' che tento di affrontare questo problema, lo espongo anche qui.
    Devo copiare alcune tabelle del Database in produzione in un altro database sullo stesso server.
    Mi serve questo perchè gli utenti periodicamente aggiornano le tabelle ma devono anche poter tornare alla situazione di 1 giorno o 1 anno prima.

    Quindi ho pensato di creare una stored a cui passo un id e mi crea nel database copia le tabelle tabellauno_1 tabelladue_1 e così via incrementando ad ogni backup.

    Qui sorge il problema, devo usare dynamic Sql e non riesco ecco il codice:

    CREATE PROCEDURE dbo.backup1(
    @num AS varchar(3)
    )
    AS DECLARE @tmp varchar(4000)

    SET @tmp = 'SELECT * INTO Database2.dbo.t_prezzi_' + @num + ' FROM dbo.t_prezzi '
    SET @tmp = 'SELECT * INTO Database2.dbo.t_giorni_' + @num + ' FROM dbo.t_giorni '

    EXEC @tmp

    RETURN

    Questo mi dà errore dicendo che non trova il Server Database2

    Dove sbaglio?
    Grazie

    G

    P.S.: Se avete altre soluzioni io sono qui ad ascoltarvi...

  2. #2
    1. non ti basterebbe un semplice backup giornaliero?
    2. database2 è sullo stesso server di database1?

  3. #3
    > 1. non ti basterebbe un semplice backup giornaliero?

    No, quando il cliente varia questo "listino prezzi" devo fare un backup solo di queste tabelle via codice, per poi poter ripristinare a sua scelta sempre via codice.

    > 2. database2 è sullo stesso server di database1?

    Si, ecco perchè non mi quadra

    Grazie per la risposta

    G

  4. #4
    tanto per provare, se fai una SELECT di una tabella di database2 ti funziona? potrebbe essere un problema di permessi utente

  5. #5
    Ciao e grazie ancora per le risposte.

    Ora non sono sul server, però la stored normale (senza dynamic sql)
    di copia dal database1 al database2 del tipo

    SELECT * FROM dbo.t_origine INTO database2.dbo.t_origine_1

    me la fa tranquillamente.

    Boh

    Ciao

    G

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    1- Hai provato a fare una PRINT della variabile @tmp e vedere cosa esce. ?
    2- Prova EXEC (@tmp);
    (con le parentesi)

  7. #7

    Re: [SQL Server] Copiare tabelle

    Ciao a tutti, ho risolto così

    SET @tmp = 'SELECT * INTO Database2.dbo.t_prezzi_' + @num + ' FROM t_prezzi '

    Praticamente ho tolto l'owner quando mi riferivo a tabelle locali, adesso funziona.

    Giulio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.