@@ -17,7 +17,7 @@ ALTER PROCEDURE [dbo].[sp_helpme]
1717 ,@SqlMajorVersion TINYINT = 0
1818 ,@SqlMinorVersion SMALLINT = 0
1919AS
20-
20+
2121/*
2222sp_helpme - Part of the ExpressSQL Suite https://expresssql.lowlydba.com/
2323
@@ -46,7 +46,7 @@ Example:
4646 EXEC sp_helpme 'dbo.Sales';
4747
4848*/
49-
49+
5050BEGIN
5151 SET NOCOUNT ON ;
5252
@@ -98,50 +98,24 @@ BEGIN
9898 -- If no @objname given, give a little info about all objects.
9999 IF (@objname IS NULL )
100100 BEGIN ;
101- IF (SERVERPROPERTY(' EngineEdition' ) != 5 )
102- BEGIN -- begin SQL Server
103- SET @SQLString = N' SELECT
104- [Name] = o.[name],
105- [Owner] = USER_NAME(OBJECTPROPERTY([object_id], ' ' ownerid' ' )),
106- [Object_type] = SUBSTRING(v.[name],5,31),
107- [Create_datetime] = o.create_date,
108- [Modify_datetime] = o.modify_date,
109- [ExtendedProperty] = ep.[value]
110- FROM sys.all_objects o
111- INNER JOIN [master].dbo.spt_values v ON o.[type] = SUBSTRING(v.[name],1,2) COLLATE DATABASE_DEFAULT
112- LEFT JOIN sys.extended_properties ep ON ep.major_id = o.[object_id]
113- and ep.[name] = @epname
114- AND ep.minor_id = 0
115- AND ep.class = 1
116- WHERE v.[type] = ' ' O9T' '
117- ORDER BY [Owner] ASC, Object_type DESC, [name] ASC;' ;
118- SET @ParmDefinition = N' @epname SYSNAME' ;
119-
120- EXEC sp_executesql @SQLString
121- ,@ParmDefinition
122- ,@epname;
123- END -- end SQL Server objects
124- ELSE
125- BEGIN -- begin Azure SQL
126- SET @SQLString = N' SELECT
127- [Name] = o.[name],
128- [Owner] = USER_NAME(OBJECTPROPERTY([object_id], ' ' ownerid' ' )),
129- [Object_type] = LOWER(REPLACE(o.type_desc, ' ' _' ' , ' ' ' ' )),
130- [Create_datetime] = o.create_date,
131- [Modify_datetime] = o.modify_date,
132- [ExtendedProperty] = ep.[value]
133- FROM sys.all_objects o
134- LEFT JOIN sys.extended_properties ep ON ep.major_id = o.[object_id]
135- and ep.[name] = @epname
136- AND ep.minor_id = 0
137- AND ep.class = 1
138- ORDER BY [Owner] ASC, Object_type DESC, [name] ASC;' ;
139- SET @ParmDefinition = N' @epname SYSNAME' ;
101+ SET @SQLString = N' SELECT
102+ [Name] = [o].[name],
103+ [Owner] = USER_NAME(OBJECTPROPERTY([object_id], ' ' ownerid' ' )),
104+ [Object_type] = LOWER(REPLACE([o].[type_desc], ' ' _' ' , ' ' ' ' )),
105+ [Create_datetime] = [o].[create_date],
106+ [Modify_datetime] = [o].[modify_date],
107+ [ExtendedProperty] = [ep].[value]
108+ FROM [sys].[all_objects] [o]
109+ LEFT JOIN [sys].[extended_properties] [ep] ON [ep].[major_id] = [o].[object_id]
110+ and [ep].[name] = @epname
111+ AND [ep].[minor_id] = 0
112+ AND [ep].[class] = 1
113+ ORDER BY [Owner] ASC, [Object_type] DESC, [name] ASC;' ;
114+ SET @ParmDefinition = N' @epname SYSNAME' ;
140115
141- EXEC sp_executesql @SQLString
142- ,@ParmDefinition
143- ,@epname;
144- END -- end Azure SQL objects
116+ EXEC sp_executesql @SQLString
117+ ,@ParmDefinition
118+ ,@epname;
145119
146120 -- Display all user types
147121 SET @SQLString = N' SELECT
@@ -245,55 +219,26 @@ BEGIN
245219 END -- Systypes
246220
247221 -- FOUND IT IN SYSOBJECT, SO GIVE OBJECT INFO
248- IF (SERVERPROPERTY(' EngineEdition' ) != 5 )
249- BEGIN -- begin SQL Server
250- SET @SQLString = N' SELECT
251- [Name] = o.name,
252- [Owner] = user_name(ObjectProperty(object_id, ' ' ownerid' ' )),
253- [Type] = substring(v.name,5,31),
254- [Created_datetime] = o.create_date,
255- [Modify_datetime] = o.modify_date,
256- [ExtendedProperty] = ep.[value]
257- FROM sys.all_objects o
258- INNER JOIN master.dbo.spt_values v ON o.type = substring(v.name,1,2) collate DATABASE_DEFAULT
259- LEFT JOIN sys.extended_properties ep ON ep.major_id = o.[object_id]
260- AND ep.[name] = @epname
261- AND ep.minor_id = 0
262- AND ep.class = 1
263- WHERE v.type = ' ' O9T' '
264- AND o.object_id = @ObjID;' ;
265-
266- SET @ParmDefinition = N' @ObjID INT, @epname SYSNAME' ;
267-
268- EXEC sp_executesql @SQLString
269- ,@ParmDefinition
270- ,@ObjID
271- ,@epname;
272-
273- END -- end SQL Server
274- ELSE
275- BEGIN -- begin Azure SQL
276- SET @SQLString = N' SELECT
277- [Name] = o.name,
278- [Owner] = user_name(ObjectProperty(object_id, ' ' ownerid' ' )),
279- [Type] = LOWER(REPLACE(o.type_desc, ' ' _' ' , ' ' ' ' )),
280- [Created_datetime] = o.create_date,
281- [Modify_datetime] = o.modify_date,
282- [ExtendedProperty] = ep.[value]
283- FROM sys.all_objects o
284- LEFT JOIN sys.extended_properties ep ON ep.major_id = o.[object_id]
285- AND ep.[name] = @epname
286- AND ep.minor_id = 0
287- AND ep.class = 1
288- WHERE o.object_id = @ObjID;' ;
289-
290- SET @ParmDefinition = N' @ObjID INT, @epname SYSNAME' ;
222+ SET @SQLString = N' SELECT
223+ [Name] = [o].[name],
224+ [Owner] = USER_NAME(ObjectProperty([o].[object_id], ' ' ownerid' ' )),
225+ [Type] = LOWER(REPLACE([o].[type_desc], ' ' _' ' , ' ' ' ' )),
226+ [Created_datetime] = [o].[create_date],
227+ [Modify_datetime] = [o].[modify_date],
228+ [ExtendedProperty] = [ep].[value]
229+ FROM [sys].[all_objects] [o]
230+ LEFT JOIN [sys].[extended_properties] [ep] ON [ep].[major_id] = [o].[object_id]
231+ AND [ep].[name] = @epname
232+ AND [ep].[minor_id] = 0
233+ AND [ep].[class] = 1
234+ WHERE [o].[object_id] = @ObjID;' ;
235+
236+ SET @ParmDefinition = N' @ObjID INT, @epname SYSNAME' ;
291237
292- EXEC sp_executesql @SQLString
293- ,@ParmDefinition
294- ,@ObjID
295- ,@epname;
296- END -- end Azure SQL
238+ EXEC sp_executesql @SQLString
239+ ,@ParmDefinition
240+ ,@ObjID
241+ ,@epname;
297242
298243 -- Display column metadata if table / view
299244 SET @SQLString = N'
@@ -303,7 +248,7 @@ BEGIN
303248 -- SET UP NUMERIC TYPES: THESE WILL HAVE NON-BLANK PREC/SCALE
304249 -- There must be a ' ' ,' ' immediately after each type name (including last one),
305250 -- because that' ' s what we' ' ll search for in charindex later.
306- DECLARE @precscaletypes nvarchar (150);
251+ DECLARE @precscaletypes NVARCHAR (150);
307252 SELECT @precscaletypes = N' ' tinyint,smallint,decimal,int,bigint,real,money,float,numeric,smallmoney,date,time,datetime2,datetimeoffset,' '
308253
309254 -- INFO FOR EACH COLUMN
@@ -322,7 +267,7 @@ BEGIN
322267 else ' ' ' ' end,
323268 [Nullable] = case when [ac].[is_nullable] = 0 then ' ' no' ' else ' ' yes' ' end, ' ;
324269
325- -- Only include if the exist on the current version
270+ -- Only include if they exist on the current version
326271 IF @HasMasked = 1
327272 BEGIN
328273 SET @SQLString = @SQLString + N' [Masked] = case when is_masked = 0 then ' ' no' ' else ' ' yes' ' end, ' ;
0 commit comments