Avatar billede webdb Nybegynder
11. marts 2006 - 17:51 Der er 3 kommentarer

Problem med formatering af variabel i stored proc.

Hej,

Jeg skal i nedenstående have pages med en ; på hver side.
Pages er et tabel felt.
... AND ;pages; LIKE ...

Pt fejler den med; Incorrect syntax near ';'


...
@PageId int = 0

--
DECLARE @strSql varchar(2000)

--

SET @strSql = 'SELECT * ' +
' FROM tblAdv_campaigns ' +
' WHERE active = 1 '

IF @PageId > 0
    BEGIN
    SET @strSql = @strSql + ' AND pages LIKE ''%'+CONVERT(varchar, @PageId)+'%'' '

    END
Avatar billede dsj Nybegynder
11. marts 2006 - 18:47 #1
Prøv med:

SET @strSql = 'SELECT *, \';\'+pages+\';\' AS pages ' +
...
...
Avatar billede webdb Nybegynder
11. marts 2006 - 20:05 #2
Hej, det er i linien med where der skal ; på begge sider af pages

WHERE ;pages; LIKE ''%'+CONVERT(varchar, @PageId)+'%''

Her er en demo. Skal det være noget i stil med:    WHERE \';pages;\' LIKE


ALTER PROCEDURE [dbo].[sp_Test]
@PageId int = 1

AS
BEGIN

DECLARE @strSql varchar(2000)

SET NOCOUNT ON;

SET @strSql = 'SELECT pages FROM tblAdv_campaigns ' +
' WHERE pages LIKE ''%'+CONVERT(varchar, @PageId)+'%'' '

EXEC(@strSql)
END
Avatar billede ldanielsen Nybegynder
14. marts 2006 - 09:43 #3
Så din færdige sætning bliver:

SELECT pages FROM tblAdv_campaigns WHERE ;pages; LIKE '%34567%'

- eller noget i den stil??

Det fejler, enten fordi der ikke er en kolonne der hedder ;pages; eller fordi ; er er ulovligt tegn i den forbindelse.

Hvis du virkelig har en kolonne der hdder ;pages;, så prøv med [] omkring:


SELECT pages FROM tblAdv_campaigns WHERE [;pages;] LIKE '%34567%'
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