Technical Article

Registry Reading and Writing UDF's

,

These are little more than wrapper functions for xp_regread and xp_regwrite, but lets them be callable from views, if you desire to do so.

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnRegRead]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnRegRead]
GO

CREATE   FUNCTION fnRegRead (@rootkey varchar(100) = 'HKEY_LOCAL_MACHINE', 
@key varchar(500),
@value_name varchar(100))
RETURNS varchar(4000)
AS
BEGIN
DECLARE @ret varchar(4000)

/* 
xp_regread 
xp_regread [@rootkey=]'rootkey', [@key=]'key'[, [@value_name=]'value_name'][, [@value=]@value OUTPUT] 

@rootkey Possible values :
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
*/

EXEC master..xp_regread @rootkey, @key, @value_name, @ret OUTPUT

RETURN @ret
END

GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnRegWrite]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnRegWrite]
GO

CREATE   FUNCTION fnRegWrite (@rootkey varchar(100) = 'HKEY_LOCAL_MACHINE', 
@key varchar(500),
@value_name varchar(100),
@type varchar(30) = 'REG_SZ',
@value varchar(1024))
RETURNS int
AS
BEGIN
DECLARE @ret int

/* 
xp_regwrite 
xp_regwrite [@rootkey=]'rootkey', [@key=]'key', [@value_name=]'value_name', [@type=]'type', [@value=]'value', 

@type can be REG_SZ for string values or REG_DWORD for integers 

@rootkey Possible values :
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG

*/
EXEC @ret = master..xp_regwrite @rootkey, @key, @value_name, @type, @value

RETURN @ret
END


GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating