Avatar billede aspcoder Nybegynder
21. august 2007 - 15:22 Der er 5 kommentarer

Flytning til anden server

Hej,

Jeg har min hjemmeside kørende hos et webhotel, hvor MSSQL-serveren ikke giver mulighed for backup pga. sikkerhedsregler.

Jeg har prøvet at bruge Generate Scripts og Import/Export Data i MSSQL Management Studio 2005 Enterprise SP1, men den fejler hele tiden på Identity-rækker, ForeignKey-constraints osv.

Jeg har prøvet at bruge Enable Identity Insert, men resultatet er at ID-rækken starter forfra, hvilket bryder tabellernes interne relationer. (f.eks. at BrugerID ligepludseligt er anderledes end det i brugerid som står i Tilladelser-tabellen, hvilket gør at en anden bruger som nu har fået det gamle brugerid nu har adgang til noget han ikke skulle osv.)

Jeg har ledt og ledt efter værktøjer men jeg har ikke kunnet finde en løsning som virker udelukkende ved brug af SQL (CREATE TABLE, INSERTs osv.)
Avatar billede lorentsnv Nybegynder
22. august 2007 - 10:38 #1
Du kan slå constraints fra, og tillade identity inserts med SQL, nogelunde på følgende måde:

ALTER TABLE MyTable NOCHECK CONSTRAINT ALL

SET IDENTITY_INSERT MyTable ON

INSERT INTO MyTable (Column1,Column2,...,ColumnX)
Select Column1,Column2,...,ColumnX
From SourceTable

SET IDENTITY_INSERT Dimensions.Company_T1 OFF

ALTER TABLE MyTable CHECK CONSTRAINT ALL
Avatar billede aspcoder Nybegynder
22. august 2007 - 12:24 #2
Det ville også være en løsning hvis jeg havde en tekstfil med SQL jeg skulle importere. Men det lader ikke til at MSSQL Management Studio understøtter "Eksportér til SQL".

Og dertil kommer, at jeg i givet fald ville skulle tilføje din statement til hver eneste tabel manuelt, hvilket er ca. 28 gange. Og det skulle jo gerne kunne gøres en gang ugentligt mindst, helst automatisk, mht. backup osv..

Findes der nogen værktøjer til dette?
Avatar billede lorentsnv Nybegynder
22. august 2007 - 13:24 #3
Det mest nærliggende værktøj vil være SSIS (SQL Server Integration Services). Har du mulighed for at koble dig til din DB hos dit webhotel, med lokal Management Studio. I så fald vil du kunne bruge SSIS, og sette op en import. En SSIS pakke kan scheduleres, under forudsætning af at SQL Server Agent kører. SQL Server Agent er en service, som måske ikke default er sat til at køre automatisk.
Avatar billede aspcoder Nybegynder
22. august 2007 - 13:34 #4
Gælder det du siger også for MSSQL 2005? Såvidt jeg ved er SSIS blevet erstattet af Management Studio således at SSIS er en del af det.

Jeg har prøvet at oprette hvad jeg mener er en SSIS pakke men det er netop det som fejler.


Min nuværende løsning er
1. Generere scripts for SP og tabeller uden FK
2. Export til tabeller uden "Optimize for many tables" og med "Enable Identity Inserts".

Men nu er næste problem at skulle synkronisere med en eksisterende tabel, således at kun nye data overføres. Sådan som det er nu skal alle tabeller tømmes inden Import/Export.

Og så ville det jo være rart at det hele ikke var så intensivt manuelt.
Avatar billede lorentsnv Nybegynder
22. august 2007 - 14:04 #5
Det gelder for MSSQL 2005. SSIS er kommet til i MSSQL 2005, i SQL Server 2000 var der DTS.

Management Studio er program til at administrere SQL Server m.m. (ANalysi Services, SSIS m.m.), og SQL Server Business Intelligence Developer Studio (BIDS) (stort set samme interface som Visual Studio) bruger du til at udvikle bl.a. SSIS pakker med.

Du kan fra Management Studio få genereret nogle SSIS pakker ved at gå på Import/Export, men hvis du skal have fuld kontrol, skal du over i BIDS.

SSIS er et stærkt værktøj til at lave hvad du ønsker, men en pakke som importerer ændringer/nye records er nok ikke lavet på få minutter, specielt ikke hvis du ikke kender SSIS.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester