Avatar billede bdef Novice
26. november 2013 - 10:23 Der er 2 kommentarer og
1 løsning

MSSQL siger at jeg skal bruge en table variabel

Jeg forsøger at lave en SP som kan søge igennem alle tabeller og colonner af typen varchar igennem efter rækker med et bestemt indhold.
------------
declare @SoegeOrd nvarchar(100) = '%bil%'

declare @_TABLE_NAME nvarchar(128)
declare @_COLUMN_NAME nvarchar(128)
declare @_Antal int

declare cur cursor for
  select TABLE_NAME, COLUMN_NAME
  from INFORMATION_SCHEMA.COLUMNS
  where DATA_TYPE in ('nvarchar', 'varchar')

open cur
fetch next from cur into @_TABLE_NAME, @_COLUMN_NAME

while (@@FETCH_STATUS = 0)
begin
  set @_Antal = 0 
 
  select @_Antal = COUNT(*)
  from @_TABLE_NAME
  where @_COLUMN_NAME like @SoegeOrd

  fetch next from cur into @_TABLE_NAME, @_COLUMN_NAME
end    -- WHILE CURSOR
close cur
deallocate cur
----------------
Jeg får følgende fejl:
Must declare the table variable "@_TABLE_NAME".

Men er en table variabel ikke en temporær tabel af en slags og vil derfor ikke fungere her? Hvad gør jeg så?
Avatar billede arne_v Ekspert
27. november 2013 - 02:25 #1
Du bliver noedt til at lave string konkatanering og bruge EXEC.
Avatar billede bdef Novice
29. december 2013 - 10:00 #2
kom med point :-)
Avatar billede arne_v Ekspert
29. december 2013 - 15:05 #3
svar
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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