Lorenzo Benaglia


Storie di un SQLlaro mannaro...
Archivio Posts
Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005
Calendario
giugno 2024
lmmgvsd
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

sp_refreshsqlmodule

Mentre spulciavo i post sul ng MVP privato dedicato a SQL Server, ho notato un thread di Erland Sommarskog dedicato alla stored procedure sp_refreshsqlmodule che verrà introdotta con il Service Pack 2 di SQL Server 2005 (attualmente è disponibile la CTP di Novembre 2006).

In passato mi è già capitato di parlare dei problemi legati all'aggiornamento della tabella di sistema sysdepends di SQL Server 2000 contenente le informazioni di dipendenza tra gli oggetti.
In SQL Server 2005 queste informazioni ci vengono restituite dalla catalog view sys.sql_dependencies che accede alle tabelle di sistema sys.sysmultiobjrefs e sys.syspalvalues (non documentate). Fino ad ora l'unica soluzione per popolare correttamente tali tabelle consisteva nel rigenerare i moduli nella giusta sequenza ma l'introduzione della stored procedure sp_refreshsqlmodule ci permetterà di "rinfrescare" il loro contenuto.

Vi allego l'esempio postato da Erland:

CREATE PROCEDURE nisse_sp
AS
SELECT * FROM doesnotyetexist
GO

CREATE TABLE doesnotyetexist
(
    nowitexists int NOT NULL
);
GO

EXEC sp_depends nisse_sp;   -- nothing displayed.
GO

EXEC sp_refreshsqlmodule nisse_sp;
GO

EXEC sp_depends nisse_sp;   -- Now it does!
GO

DROP PROC nisse_sp;
DROP TABLE doesnotyetexist;


Sarei curioso di studiare il codice sorgente della procedura, ma su questo PC non ho una istanza SQL Server 2005.
Chi ha installato la CTP del Service Pack 2 potrà sperimentare in prima persona il suo funzionamento
Categoria: SQL Server
mercoledì, 06 dic 2006 Ore. 00.04
Statistiche
  • Views Home Page: 937.858
  • Views Posts: 702.817
  • Views Gallerie: 12.847.198
  • n° Posts: 300
  • n° Commenti: 314
Mappa





















Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003