Avatar billede i910ativ Nybegynder
25. februar 2008 - 10:03 Der er 6 kommentarer og
1 løsning

DECLARE the scalar variable

Jeg får fejlen
      Must declare the scalar variable "@period".

på nedenstående

DECLARE @period INT ;
SET @period = 300 ;
GO

SELECT  [Tabel].*
FROM    [Tabel]
WHERE  [Tabel].[Datokolonne] > GETDATE() - @period
GO

Har jeg misforstået hensigten eller syntaksen eller andet mht. DECLARE?

/pft.
Avatar billede i910ativ Nybegynder
25. februar 2008 - 10:04 #1
ahh, den er lokal ... kan man angive en variabel, man kan bruge på tværs af 3-4 GO-kommandoer i samme script?
Avatar billede arne_v Ekspert
25. februar 2008 - 15:32 #2
Kan du ikke bare droppe alle GO's undtagen den sidste ?
Avatar billede i910ativ Nybegynder
27. februar 2008 - 08:55 #3
Jo, det er blevet løsningen - burde nok have lukket spm, men nu kan jeg måske vinkle den lidt over i noget med de GO-kommandoer så jeg kan komme af med point'ne :-) ... det er fordi jeg raffinerer og tilpasser lidt på nogle scripts efterladt af min forgænger på posten, mange af disse har nærmest en GO-kommando efter hver statement - hvad kan idéen i dette have været? Er der tilfælde (og hvis ja, hvilke?) hvor det anbefales at GO løbende igennem scriptet, fremfor blot til sidst?
Avatar billede arne_v Ekspert
28. februar 2008 - 00:17 #4
Forskellen er jo om man "bundter" kommandoerne eller ej.

Forskellen er nem at vise:

SELECT * FROM t1
GO
SELECT * FROM t1
GO

SELECT * FROM t1;
SELECT * FROM t1
GO

1> SELECT * FROM t1
2> GO
F1          F2
----------- --------------------------------------------------
          1 A
          2 BB
          3 CCC

(3 rows affected)
1> SELECT * FROM t1
2> GO
F1          F2
----------- --------------------------------------------------
          1 A
          2 BB
          3 CCC

(3 rows affected)

og

1> SELECT * FROM t1;
2> SELECT * FROM t1
3> GO
F1          F2
----------- --------------------------------------------------
          1 A
          2 BB
          3 CCC

(3 rows affected)
F1          F2
----------- --------------------------------------------------
          1 A
          2 BB
          3 CCC

(3 rows affected)

Personligt bruger jeg også GO når det er SQL scripts eksekverse standalone men
ikke GO i stored procedures.

Hvis jeg får lyst til at DECLARE noget så putter jeg det i en stored procedure.
Avatar billede i910ativ Nybegynder
28. februar 2008 - 08:16 #5
tak for uddybningen :-)
Avatar billede arne_v Ekspert
06. april 2008 - 06:09 #6
OK ?
Avatar billede i910ativ Nybegynder
07. april 2008 - 07:54 #7
yes :-)
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