sql >> Databáze >  >> RDS >> Sqlserver

Jak zjistit, co způsobilo chyby hlášené v trasování SQL Server Profiler?

Nedělejte si starosti s chybami 208. 208 je "Objekt nenalezen". Profiler je přebírá kvůli tomu, co se nazývá „odložené rozlišení názvů“.

Použijte následující postup.

CREATE PROCEDURE Demo AS
  CREATE TABLE #Temp (ID int)
  INSERT INTO #Temp VALUES (1)
  SELECT ID FROM #Temp
GO

Tento proc poběží v pořádku bez jakýchkoliv chyb, pokud však máte spuštěné trasování profileru, uvidíte jeden nebo dva výskyty chyby 208. Je to proto, že tabulka #Temp neexistuje, když se proc spustí, což je, když kód je analyzován a svázán. Proces vazby k podkladovým objektům se nezdaří.

Jakmile se tabulka Create spustí, ostatní příkazy se znovu zkompilují a navážou na správnou tabulku a spustí se bez chyby.

Jediné místo, kde uvidíte chybu odloženého rozlišení, je profiler.



  1. Mysql 5.7.20:Nelze vytvořit hodnotu JSON z řetězce s CHARACTER SET 'binary'

  2. Jak mohu snadno migrovat z MySQL na PostgreSQL?

  3. Dotaz běží rychle, ale běží pomalu v uložené proceduře

  4. Sloupec 'id' v místě, kde je klauzule nejednoznačná