Microsoft SQL Server 2012 Service Pack 1-hurtigreparasjoner distribueres som én nedlastbar fil. Ettersom at reparasjonene er kumulative, inneholder hver nye utgivelse alle hurtigreparasjonene og sikkerhetsreparasjonene som var inkludert i tidligere SQL Server 2012 Service Pack 1 Løs utgivelsen.
Symptomer
Når du kjører en Transact-SQL-setning i SQL Server 2012, får du følgende feilmelding:
Uriktig syntaks nær 'begi'.
Dette problemet oppstår når følgende betingelser er oppfylt:
-
Setningen inneholder en Hvis -betingelse.
-
Hvis vilkåret inneholder ikke Start - og Slutt -setninger.
-
Hvis betingelsen er etterfulgt av en blokk med BEGYNNE å PRØVE .
-
Hvis -blokk er kompilert på nytt når du kjører spørringen.
Oppløsning
Informasjon om kumulativ oppdatering
Kumulativ oppdatering 4 for SQL Server 2012 SP1
Hurtigreparasjonen for dette problemet ble først utgitt i Kumulativ oppdatering 4. Hvis du vil ha mer informasjon om hvordan du får tak i denne kumulative oppdateringen for SQL Server 2012 SP1, klikker du artikkelnummeret nedenfor for å gå til artikkelen i Microsoft Knowledge Base:
2833645 kumulativ oppdatering 4 for SQL Server 2012 SP1Obs! Ettersom som versjoner er kumulative, inneholder hver nye fix-utgivelse alle hurtigreparasjonene og sikkerhetsreparasjonene som var inkludert i tidligere SQL Server 2012 SP1 løser utgivelsen. Vi anbefaler at du vurderer å bruke den nyeste versjonen av hurtigreparasjonen som inneholder denne hurtigreparasjonen. Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å gå til artikkelen i Microsoft Knowledge Base:
2772858 for SQL Server 2012 bygger som er utgitt etter Service Pack 1 for SQL Server 2012 ble utgitt
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Hvis du vil ha mer informasjon
Hvis du vil gjenskape dette problemet, kjører du følgende Transact-SQL-setninger i SQL Server 2012:
DECLARE @i INT
IF object_id('tempdb..#temptable') IS NOT NULL
DROP TABLE #temptable
CREATE TABLE #temptable (id INT)
INSERT INTO #temptable VALUES (1),(2),(3);
IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);
BEGIN TRY
SELECT 'message'
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE()
END CATCH
Løsningen
Du kan omgå dette problemet ved å legge til Start - og Slutt -setninger Hvis -betingelse.
Referanser
For mer informasjon om trinnvis Vedlikehold modellen for SQL Server, kan du klikke følgende artikkelnummer for å gå til artikkelen i Microsoft Knowledge Base:
935897 en trinnvis Vedlikehold modell er tilgjengelig fra SQL Server-teamet å levere hurtigreparasjoner for rapporterte problemerHvis du vil ha mer informasjon om navngivingspraksis for SQL Server-oppdateringer, kan du klikke følgende artikkelnummer for å gå til artikkelen i Microsoft Knowledge Base:
822499 Naming skjema for Microsoft SQL Server-programvare for oppdateringspakkerHvis du vil ha mer informasjon om terminologi for programvareoppdatering, klikker du artikkelnummeret nedenfor for å gå til artikkelen i Microsoft Knowledge Base:
824684 beskrivelse av standardterminologien som brukes til å beskrive oppdateringer av Microsoft-programvare