31. marts 2015 - 10:43Der 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:)
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
Synes godt om
Ny brugerNybegynder
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.