Avatar billede larsmartin Praktikant
31. marts 2015 - 10:43 Der er 1 kommentar og
1 løsning

Omdøbe tabelnavne

Hej,
Jeg har en database med måske 100 tabeller.
De ca 15 af dem vil jeg gerne omdøbe til TabelNavn+'_201501'

Jeg kunne selvfølgelig godt bare bruge

Exec sp_rename 'database.dbo.TabelNavn', 'TabelNavn_201503';

15 gange, men tænker jeg gerne vil lave noget smart a la

SET @Data = '_201503'
SET @Table = 'TABLE_NAME'
SET @Query = 'EXEC sp_rename '''+@Table+''','''+@Table+@Date+''''
EXEC(@Query)



Jeg tænker jeg måske kunne smide de 15 navne i en temp tabel og så loope igennem dem, men kan ikke lige komme helt i mål.
Tak:)
Avatar billede Syska Mester
31. marts 2015 - 22:44 #1
Hvordan ved du hvad 15 tabeller der skal laves en rename på?
Avatar billede larsmartin Praktikant
01. april 2015 - 09:42 #2
Det bestemmer jeg selv, men jeg fandt en løsning,
hvor jeg indlæser relevante navne i en temp tabel først.

use My_DATABASE
declare @value int
set @value =1
DECLARE @Date NVARCHAR(8), @Table NVARCHAR(500), @Query NVARCHAR(2000)
SET @Date = '_201503'
while ((select count(*)from #tempDateTable) >= @value)
begin

;With Name_CTE (Name, rowNumber)
as
(select *, row_number() over(order by name) rowNumber from #tempDateTable)

Select @Table = Name from Name_CTE where @value= rowNumber
Set @value=@value+1
SET @Query = 'EXEC sp_rename '''+@Table+''','''+@Table+@Date+''''

EXEC(@Query)
end
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

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