Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Byta databas inne i cursor?

Postades av 2008-02-29 11:33:27 - Andreas Olausson, i forum sql-server/msde, Tråden har 2 Kommentarer och lästs av 1088 personer

Jag har en applikation där varje instans har en egen databas (ms sql 2000)

Nu vill jag vara lite smidig då jag uppdaterar den lite då och då...

Jag har ett skript som backar databaserna och då tänkte jag att jag kan ju lika gärna göra lite mer i dom medans det ändå loopas runt.

Backup skriptet

set nocount on
declare @name sysname
declare @dumpdevicename varchar(200)
declare @dumpdevicepath varchar(200)

declare db_sysnames cursor for 
   select name from master.dbo.sysdatabases
   where has_dbaccess(name) = 1 -- Only look at databases to which we have access

open db_sysnames
fetch db_sysnames into @name

while @@fetch_status >= 0
begin
   SET @dumpdevicename = @name + '_Backup'
   IF left(upper(@name),4) = 'FOO_'
      BEGIN
         SET @dumpdevicepath = 'D:\Backup\Slask_20080229\'+@name+'_Backup.dat'
         EXEC sp_addumpdevice 'disk', @dumpdevicename,
            @dumpdevicepath
         BACKUP DATABASE @name TO @dumpdevicename

--HÄR VILL JAG HA IN UPDATESKRIPTET NEDAN

      END



   fetch db_sysnames into @name
end
deallocate db_sysnames


GO



Detta funkar utan problem men säg om jag skulle vilja byta alla A mot B i en tabell efter backupen i samtliga databaser?


Typ:
--Detta funkar ju inte efter som tabellen foo inte finns i den databas jag står i (Master)
UPDATE foo SET bar = replace(bar), 'A','B')

--Detta funkar heller inte, (@name innehåller namnet på databasen jag precis gjort backup på)
UPDATE @name.dbo.foo SET bar = replace(bar), 'A','B')

--Detta funkar heller inte
USE @name
UPDATE foo SET bar = replace(bar), 'A','B')


Är detta en omöjlighet? Det borde det ju inte vara, kan jag backa en databas så borde jag väl kunna göra vad jag vill med den?

Tack på förhand
Andreas


Svara

Sv: Byta databas inne i cursor?

Postades av 2008-02-29 12:42:51 - Lars-Erik Eriksson

Du kan alltid komma åt tabeller i en annan databas genom att skriva
<databasnamn>.<Ägare>.<Tabell>
Exempel: Mydatabase.dbo.Customers

Du skulle ju kunna bygga upp en sträng utifrån namnet som du fångat i @name-parametern och sedan använda ExecuteSQL på denna. ExecuteSQL exekverar SQL-strängar.


Svara

Sv:Byta databas inne i cursor?

Postades av 2008-02-29 13:45:32 - Andreas Olausson

Tack, Jag var lite klantig verkar det som, lägger jag dit servernamnet så funkar det bra.

<code>
UPDATE servername.@name.dbo.foo SET bar = replace(bar), 'A','B')
</code>


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 735
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies