Avatar billede eyes Nybegynder
30. juli 2004 - 11:17 Der er 5 kommentarer og
1 løsning

Hvordan sendes variabel med

hej eksperten

Jeg sidder her og arbejder med noget Transact-SQL

Jeg vil opbygge en sql streng dynamisk ud fra nogle If sætninger hvor der tjekkes op på om null findes

dette virker også fint, mit problem er bare at de erklærede variabler ikke sendes med når jeg kører en
exec @strsql

selvom jeg har erklæret variablen og givet den en værdi.

IF(@Metadata is not null)
BEGIN
    select @strsql = @strsql + 'and (Metadata like (  ''%'' + isnull(@Metadata,Metadata) + ''%'')) '
END
Avatar billede ldanielsen Nybegynder
30. juli 2004 - 11:24 #1
Der mangler et par '

IF(@Metadata is not null)
BEGIN
    select @strsql = @strsql + 'and (Metadata like (  ''%''' + isnull(@Metadata,Metadata) + '''%'')) '
END
Avatar billede eyes Nybegynder
30. juli 2004 - 11:30 #2
det hjalp :)

men nu skriver den Server: Msg 207, Level 16, State 3, Line 21
Invalid column name 'Metadata'.
Avatar billede ldanielsen Nybegynder
30. juli 2004 - 11:56 #3
OK, hvis @Metadata er NULL så vil den hente noget der hedder Metadata. Hvor skal den få det fra?
Avatar billede ldanielsen Nybegynder
30. juli 2004 - 11:58 #4
I øvrigt er du inde i en IF der forudsætter at @Metadata IKKE er NULL, så ...

IF(@Metadata is not null)
BEGIN
    SET @strsql = @strsql + 'AND (Metadata LIKE (  ''%''' + @Metadata + '''%'')) '
END
Avatar billede eyes Nybegynder
30. juli 2004 - 13:28 #5
har fixet problemet
Avatar billede eyes Nybegynder
30. juli 2004 - 13:29 #6
brugte dog ikke din løsning men tilrettede den øverste
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