Avatar billede mickni33 Nybegynder
24. november 2005 - 13:39 Der er 1 kommentar og
1 løsning

kopier data ved Fetch

Jeg prøver at kopier data fra en database over i en anden database.
sysobjects og syscolumns henter alle de tabeller i databasen som har en kolonnenavn ved navn "Active" herefter skal al data fra de tabeller kopieres over i en anden database.
Jeg har forsøgt med dette kode men den skriver fejl ved
@temptable og i
print 'tabelnavn :'+@temptable skriver den bare den første tabel i en uendelig løkke


SELECT * FROM DB1.dbo.@temptable
        WHERE @temptable.Active=0



DECLARE @temptable varchar (255)

DECLARE tablenameKEY CURSOR LOCAL FOR
SELECT sysobjects.name
FROM     syscolumns
INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
WHERE    sysobjects.xtype ='U' AND    syscolumns.name = 'active'


OPEN tablenameKEY
FETCH NEXT FROM tablenameKEY into @temptable
WHILE @@FETCH_STATUS=0
        BEGIN
        /*INSERT INTO DB2.dbo.@temptable*/
        SELECT * FROM DB1.dbo.@temptable
        WHERE @temptable.Active=0
        print 'tabelnavn :'+@temptable
        END
    FETCH NEXT FROM tablenameKEY INTO @temptable
Close tablenameKEY
DeAllocate tablenameKEY
Avatar billede mickni33 Nybegynder
24. november 2005 - 13:41 #1
ÅÅÅÅRRRRH for H
prøver igen

Jeg prøver at kopier data fra en database over i en anden database.
sysobjects og syscolumns henter alle de tabeller i databasen som har en kolonnenavn ved navn "Active" herefter skal al data fra de tabeller kopieres over i en anden database.
Jeg har forsøgt med dette kode men den skriver fejl ved
@temptable i
SELECT * FROM DB1.dbo.@temptable
        WHERE @temptable.Active=0

og i
print 'tabelnavn :'+@temptable skriver den bare den første tabel i en uendelig løkke





DECLARE @temptable varchar (255)

DECLARE tablenameKEY CURSOR LOCAL FOR
SELECT sysobjects.name
FROM    syscolumns
INNER JOIN sysobjects ON syscolumns.id = sysobjects.id
WHERE    sysobjects.xtype ='U' AND    syscolumns.name = 'active'


OPEN tablenameKEY
FETCH NEXT FROM tablenameKEY into @temptable
WHILE @@FETCH_STATUS=0
        BEGIN
        /*INSERT INTO DB2.dbo.@temptable*/
        SELECT * FROM DB1.dbo.@temptable
        WHERE @temptable.Active=0
        print 'tabelnavn :'+@temptable
        END
    FETCH NEXT FROM tablenameKEY INTO @temptable
Close tablenameKEY
DeAllocate tablenameKEY
Avatar billede mickni33 Nybegynder
24. november 2005 - 15:23 #2
prøver en ny version
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