12. december 2002 - 02:36Der er
11 kommentarer og 1 løsning
- at sætte en variabel...
Hello! Jeg har en stored procedure hvor jeg gerne vil tælle med count(*). Jeg har og så en lokal variabel som jeg gerne vil sætte til resultatet af dennne tælling. Jeg havde tænkt noget i denne stil:
declare @tabel varchar(100) declare @tmp int set @tabel = \'minTabel\' set @tmp = use minDB execute(\'select count(*) from \' @tabel)
Dette kan jeg dog ikke få lov til - syntax fejl - men hvad gør man så?
Hvis dine tabeller holder en nogenlunde ens navngivning, hvilket jeg formoder siden du vil iterere over dem, så kan jeg anbefale: SELECT rows FROM dbo.sysindexes WHERE name LIKE 'T_%'
Hvor "T_" er det prefix jeg altid opretter mine tabeller med :O)
Det vil ikke løse mit problem! Mit problem er at jeg ikke må sætte variablen @tmp li' værdien fra udtrykket: execute('select count(*) from '+ @tabel) men gerne: execute('select count(*) from enTabel')
Du kan ikke trække en variabel med ud af dynamisk sql :O( - Meget latterligt, har selv siddet med det flere gange. Løst dels vha. tmp-tabels, dels vha. at lave hele den sp om til noget dynamisk!
Men er idéen ikke at du skal lave en count i flere forskellige tabeller?? - Prøv at poste nogle tabelnavne som du skal trække udfra :O)
tja - altså: jeg har en tabel som indeholder tabelnavne på de tabeller der skal køres en count på... således, skal en løkke køre denne tabel igennem, hente et tabelnavn ud, køre en count(*) på den tabel og gemme det i tabellen igen.
Du skal ikke lukke uden pointgivning! Mit svar er korrekt, afprøvet mange gange som en "normal" løsning til din type opgave :O)
Vær rar at åbne igen!
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.