He encontrado una forma más rápida y fácil de lograr esto.
primera copia de su tabla (o consulta) a un archivo delimitado por tabuladores, así:
COPY (SELECT siteid, searchdist, listtype, list, sitename, county, street,
city, state, zip, georesult, elevation, lat, lng, wkt, unlocated_bool,
id, status, standard_status, date_opened_or_reported, date_closed,
notes, list_type_description FROM mlocal) TO 'c:\SQLAzureImportFiles\data_script_mlocal.tsv' NULL E''
continuación, tiene que crear la tabla en SQL, esto no va a manejar cualquier esquema para usted. El esquema debe coincidir con su archivo tsv exportado en orden de campo y tipos de datos.
Finalmente se ejecuta la utilidad bcp de SQL para llevar en el archivo TSV de este modo:
bcp MyDb.dbo.mlocal in "\\NEWDBSERVER\SQLAzureImportFiles\data_script_mlocal.tsv" -S tcp:YourDBServer.database.windows.net -U YourUserName -P YourPassword -c
Un par de cosas de la nota que me encontré. Postgres y SQL Server manejan campos booleanos de manera diferente. Su esquema de SQL Server necesita tener sus campos booleanos establecidos en varchar (1) y los datos resultantes serán 'f', 't' o null. Luego tendrá que convertir este campo a un bit. hacer algo como:
ALTER TABLE mlocal ADD unlocated bit;
UPDATE mlocal SET unlocated=1 WHERE unlocated_bool='t';
UPDATE mlocal SET unlocated=0 WHERE unlocated_bool='f';
ALTER TABLE mlocal DROP COLUMN unlocated_bool;
Otra cosa son los campos de geografía/geometría son muy diferentes entre las dos plataformas. Exporte los campos de geometría como WKT usando ST_AsText(geo)
y conviértalo apropiadamente en el extremo de SQL Server.
Puede haber más incompatibilidades que necesitan ajustes como este.
EDITAR. Entonces, mientras que esta técnica funciona técnicamente, estoy tratando de transferir varios millones de registros de más de 100 tablas a SQL Azure y bcp a SQL Azure es bastante escamosa. Sigo recibiendo intermitentemente No se pueden abrir los errores del archivo de datos del host BCP, el servidor se interrumpe intermitentemente y por alguna razón algunos registros no se transfieren sin indicaciones de errores o problemas. Por lo tanto, esta técnica no es estable para transferir grandes cantidades de datos a Azure SQL.
Debo preguntar, si no tiene dinero, ¿por qué se muda a SQL Server? Si bien Express puede ser gratuito, la infraestructura necesaria para implementarlo no será ... –
Estos votos a favor son tontos; es una pregunta legítima y MS SQL -> las preguntas de migración de MySQL se han actualizado aquí. Me estoy mudando a SQL Server porque ya tengo una base de datos que es MS SQL, pero una gran cantidad de datos valiosos que puedo usar solo existen en una base de datos PostgreSQL. El alojamiento de la mayoría de los servidores cuesta aproximadamente el mismo precio y me gusta ASP.NET MVC 3 ya que no incluye complementos de terceros. LINQ to SQL es flakey con PostgreSQL. – Hut8
¿Qué problemas encuentra al usar el método SQL pg_dump e importar DDL/DML en SQL Server? ¿Qué quieres decir con "estoy haciendo esta tabla por tabla"? –