You've also got a potentially dangerous cast in there. It's not a good idea to blindly cast to NVARCHAR (or VARCHAR, VARBINARY....) without specifying a size for the type. Defailt is 30 (I think) but it's a server config so not guaranteed across instances.In red.....CREATE FUNCTION [dbo].[getAnonymizedID] (@UserID int)RETURNS nvarchar(MAX)ASBEGIN DECLARE @AnonymousId nvarchar(MAX),@position INT , @tempID nvarchar(MAX), @radID nvarchar,@hex nvarchar(MAX) DECLARE @i int,@temp int, @s varchar(MAX),@s1 BIGINT SET @position = 1 SET @AnonymousId='' SET @tempID = RIGHT ('000000'+ CAST (@UserID AS nvarchar), 6) WHILE @position <= DATALENGTH(@tempID) BEGIN SET @AnonymousId = @AnonymousId + ISNULL(CAST((ASCII(SUBSTRING(@tempID, @position, 1)) + 25 )As nvarchar(MAX)),'') SET @i=@AnonymousId SET @s='' WHILE (@i>0) BEGIN SET @temp=@i % 16 SET @i=@i /16 IF @temp>9 SET @s=char(55+@temp)+@s ELSE SET @s=char(48+@temp)+@s END SET @position = @position + 1 END RETURN @sEND
Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION