Procedure η οποία επιστρέφει τους πίνακες οι οποίοι καλούνται από άλλες procedure και ποιές.

Την παρακάτω procedure την χρησιμοποιώ όταν είμαι στο στάδιο ανάπτυξης για να βρίσκω εύκολα από ποιές sp εξαρτώνται οι πίνακες της βάσης μου.

IF EXISTS (select * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[Table_onProc_Depends_sp]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[Table_onProc_Depends_sp]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE Table_onProc_Depends_sp
AS
 SELECT    a.name as tableName, a.id as tableId, b.name as ProcName,b.id as ProcId
 FROM      sysobjects a
 LEFT OUTER JOIN (sysobjectsLEFT OUTER JOIN sysdepends on b.id = sysdepends.id) on sysdepends.depid = a.id
 WHERE      a.xtype = 'u'
 AND          b.xtype = 'p'
 AND NOT   a.name = 'dtproperties'
 GROUP BY  a.name, a.id, b.name,b.id
 ORDER BY  a.name
RETURN
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Δεν είναι κάτι φοβερό αλλά πιστεύω οτι είναι εύχρηστο.

 

Share


Έχουν δημοσιευτεί Τετάρτη, 1 Φεβρουαρίου 2006 10:07 μμ από το μέλος imanos
Καταχώρηση στις κατηγορίες:

Σχόλια:

 

cap έγραψε:

Να κάνω απλά την παρατήρηση οτι αν θέλει κανείς να δεί όλα τα dependent objects από ΕΝΑ αντικείμενο (π.χ. ενα πίνακα) μπορεί να χρησιμοποιήσει και την sp_depends. Για παράδειγμα, οπως αναφέρουν και τα books online, μπορούμε να χρησιμοποιήσουμε το εξής statement:

exec sp_depends 'customers'

για να δούμε ποιά objects (views, sps κλπ) εξαρτώνται από τον πίνακα customer.
Φεβρουαρίου 3, 2006 3:14 μμ