1
2 /* Sccsid = "%Z% generic/sproc/%M% %I% %G%" */
3 /* 4.8 1.1 06/14/90 sproc/src/lock */
4
5 create procedure sp_namecrack
6 @name varchar(1023),
7 @site varchar(255) = null output,
8 @db varchar(255) = null output,
9 @owner varchar(255) = null output,
10 @object varchar(255) = null output
11 as
12
13
14 if @@trancount = 0
15 begin
16 set chained off
17 end
18
19 set transaction isolation level 1
20
21 select @site = null, @db = null, @owner = null, @object = null
22
23 /*
24 ** Is there a site name?
25 */
26 if @name like "%.%.%.%"
27 begin
28 select @site = substring(@name, 1, charindex(".", @name) - 1)
29 select @name = substring(@name, charindex(".", @name) + 1, 1025)
30 end
31
32 /*
33 ** Is there a database name?
34 */
35 if @name like "%.%.%"
36 begin
37 select @db = substring(@name, 1, charindex(".", @name) - 1)
38 select @name = substring(@name, charindex(".", @name) + 1, 1025)
39 end
40
41 /*
42 ** Is there a owner?
43 */
44 if @name like "%.%"
45 begin
46 select @owner = substring(@name, 1, charindex(".", @name) - 1)
47 select @name = substring(@name, charindex(".", @name) + 1, 1025)
48 end
49
50 select @object = @name
51
52 return (0)
53
exec sp_procxmode 'sp_namecrack', 'AnyMode'
go
Grant Execute on sp_namecrack to public
go