sql >> Database >  >> RDS >> Sqlserver

SQL TRY-CATCH en de ontbrekende kolommen

Vraag (b) is gemakkelijker te beantwoorden - waar u voor staat is een controle tijdens het compileren, die TRY-CATCH overtreft die tijdens runtime werkt.

Voor (a)

DECLARE @L_ID_FOO_BAR INT;
DECLARE @SQL NVARCHAR(MAX) = '
  SELECT @L_ID_FOO_BAR = IDFOO 
  FROM BAR
  WHERE IDFOO = 5';

BEGIN TRY
  EXEC sp_executesql @SQL, N'@L_ID_FOO_BAR INT output', @L_ID_FOO_BAR output;
END TRY
BEGIN CATCH
  SELECT @L_ID_FOO_BAR = NULL -- redundant? it starts with NULL
END CATCH


  1. Wachtwoordscript vergeten PHP mysqli-database

  2. Bestaan ​​er praktijken/richtlijnen voor het maken van niet-genormaliseerde tabellen tijdens het normalisatieproces?

  3. MySQL verwijdert de voorloopnul van de integerkolom

  4. Gebruiken verschillende databases verschillende naamcitaten?