Press "Enter" to skip to content

SQL Generare copia di una tabella in una nuova in SQL Server

Oggi, ho trovato un pezzetto di SQL che reputo molto utile, al solito lo condivido nella speranza di dare una mano ;).

Lo scenario è il seguente:

Ho un server remoto da cui devo importare una serie di tabelle sul mio SQL Server locale per successive elaborazioni.

I due server sono connessi in VPN. La connessione è buona ma non posso tagliare la banda facendo una lunga serie di elaborazioni dati direttamente sul server remoto.  Perciò, per prima cosa ho creato un linked server fra il mio server e il server remoto. In questo modo posso eseguire delle query sul database remoto di cui ho bisogno.  Poi, per trasferire la tabella che mi serviva, ho scritto questo codice

USE MyNewLocalDb

SELECT FIELD1, FIELD2, FIELD3 .... FIELDn INTO dbo.MynewTable FROM
[MyRemoteServer].[MyRemoteDb].[Dbo].[MyremoteTable]

In questo caso la mia query era molto semplice, perché mi serviva una sola tabella, ma se avessi avuto bisogno di fare una serie di join non ci sarebbe stato alcun problema, basta scriverle nella clausola from. La tabella creata è molto grezza, ma vi si può poi aggiungere la PK, gli indici e qualsiasi altra cosa ci serva per l’elaborazione.

Ovviamente, per fare tutto questo dovete essere dotati dei diritti sufficienti, ovvero essere quantomeno DB_Owner sul database di destinazione e DB_Datareader sulla tabella di origine.