20. november 2002 - 09:24Der er
23 kommentarer og 1 løsning
Kunne godt bruge noget hjælp her.. :o)
Hejsa
Jeg sidder lidt fast i et eksperiment jeg sidder og leget lidt med på en MS SQL server. Mit problem er at jeg har et view som returnere X antal kolonner og dem vil jeg egentligt gerne have smidt ind i en temp tabel.
F.eks her er hvad viewet returnere:
email username password tommy@hotmail.com tommy 12345
og her er hvordan jeg gerne vil have dataen i min temp tabel:
columnName columnValue email tommy@hotmail.com username tommy password 12345
Jeg ved at dette ville normalt være noget ville klare med noget serverside scripting, men jeg ville meget gerne have det klare på SQL serveren..
Yes, but the trick is that I have to have the column names into the temp table to. I've been playing with a stored procedure called "sp_columns" that returns then names of the columns, but I still need to make the connection between the data and the column names.. ?
Do you have any examples if I want to use DTS for this ?
why dont you alter the "dynamisk opbygget Query" to return th ecolimn name too. There must be SOME logic in which fields it selects so this could be added.
Nej - men fidusen er jo netop at "select into"-tabellen opbygges efter hvordan dit query ser ud. Hvis du vil have fuldstændig frihed i selectet kan du gøre således:
select * into #tmp from view
OG endnu mere avanceret (hvis du ikke vil slæbe rundt på en gammel tabeldefinition):
if exists(select 1 from systables where name = 'tmp') begin drop table tmp end
You are right about that and I have thought about it, but that is the hard way to do I, and right now im looking for the easy way... my point is the you should be able the get the information about the tables and if you have that you wouldn't have to supply it yourself.
Ja ok, men jeg kan stadig ikke se hvordan jeg får kolonne navnene med ned i min temp tabel. Sådanne som jeg forstår det du skriver så vil jeg "bare" ende med en temp tabel der er en kopi af det output jeg får fra mit view og det er jo ikke lige det jeg vil..
Jeg er ikke om det er mig der misser noget i det du skriver..
declare #crs cursor fast_forward for select sc.name from syscolumns sc, sysobjects so where sc.id = so.id and so.name = 'menu'
open #crs
fetch next from #crs into @field
while @@fetch_status = 0 begin execute('update tmpresult set value = ' + @field + ' from #tmp') select @value = value from tmpresult insert into #result values( @field, @value ) fetch next from #crs into @field end
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.