sql >> Database teknologi >  >> RDS >> Sqlserver

exec mislykkedes, fordi navnet ikke er en gyldig identifikator?

Prøv dette i stedet til sidst:

exec (@query)

Hvis du ikke har parenteserne, antager SQL Server værdien af ​​variablen for at være et lagret procedurenavn.

ELLER

EXECUTE sp_executesql @query

Og det burde ikke være på grund af FULD JOIN.
Men jeg håber, du allerede har oprettet vikartabellerne:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 før dette.

Bemærk venligst, at der er præstationsovervejelser mellem at bruge EXEC og sp_executesql. Fordi sp_executesql bruger tvungen sætningscache som en sp.
Flere detaljer her .

På en anden note, er der en grund til, hvorfor du bruger dynamisk sql til dette tilfælde, når du kan bruge forespørgslen som den er, i betragtning af at du ikke laver nogen forespørgselsmanipulationer og udfører den, som den er?



  1. Dynamisk SQL resulterer i midlertidig tabel i SQL Stored procedure

  2. Hvornår bliver data i den midlertidige Oracle-sessionstabel slettet?

  3. SQL Server 2008 og HashBytes

  4. Rails + Postgres migration - hvorfor modtager jeg fejlen PG::UndefinedFunction:FEJL:funktion gen_random_uuid() eksisterer ikke?