I have run the same statement which you mentioned in NOTE . Then I am getting only the Objects which I was connected to. So simply add USE
to get connected to particular db. And hit the sys.objects
table.
So your SP will be like
GO
CREATE PROCEDURE PROC_GETALLOBJ
(
@DB_NAME VARCHAR(20)
)
AS
BEGIN
DECLARE @QRY VARCHAR(MAX);
SELECT @QRY = '
USE ' +@DB_NAME+'
SELECT * FROM SYS.objects WHERE [TYPE] NOT IN (''SQ'',''S'',''IT'')'
EXEC (@QRY)
END
GO
I have removed rows which are of Type SQ,S,IT
with NOT IN
. Because you might not need them.
Please find the list of types with Description.
TR --TRIGGER
SQ --SERVICE_QUEUE
FN --SQL_SCALAR_FUNCTION
S --SYSTEM_TABLE
D --DEFAULT_CONSTRAINT
IT --INTERNAL_TABLE
F --FOREIGN_KEY_CONSTRAINT
PK --PRIMARY_KEY_CONSTRAINT
P --SQL_STORED_PROCEDURE
U --USER_TABLE
TF --SQL_TABLE_VALUED_FUNCTION
UQ --UNIQUE_CONSTRAINT
V --VIEW