INSERT INTO @ProfileNameTable (ProfileName)
DECLARE @profileName nvarchar(200);
DECLARE @hierarchyFlag tinyint;
DECLARE @db_cursor CURSOR;
DECLARE @ProfileNameTable TABLE (ProfileName nvarchar(100));
/*SELECT CASE WHEN Code like '%S%' AND ProfileName NOT LIKE '%STUDENT%' THEN CONCAT(LTRIM(RTRIM(ProfileName)), '_STUDENT')
ELSE LTRIM(RTRIM(ProfileName)) END AS ProfileName FROM [dbo].[Users_Exceptions] WHERE replace(ltrim(replace(Code, '0', ' ')), ' ', '0') = @Code AND ProfileName IS NOT NULL
UNION
SELECT ProfileName AS ProfileName FROM [dbo].[vProfile] WHERE replace(ltrim(replace(Code, '0', ' ')), ' ', '0') = @Code AND ProfileName IS NOT NULL AND OraUser IS NOT NULL*/
VALUES ('Profile 1'), ('Profile 2');
/*
SET @db_cursor = CURSOR FOR
SELECT a.ProfileName FROM
(SELECT HibisProfileName AS ProfileName FROM [dbo].[vSB_IdM_Hibis_Profile] WHERE replace(ltrim(replace(Code, '0', ' ')), ' ', '0') = @Code AND HibisProfileName IS NOT NULL AND OraUser IS NOT NULL
UNION
SELECT CASE WHEN Code like '%S%' AND ProfileName NOT LIKE '%STUDENT%' THEN CONCAT(LTRIM(RTRIM(ProfileName)), '_STUDENT')
ELSE LTRIM(RTRIM(ProfileName)) END AS ProfileName FROM [dbo].[SB_Hibis_Users_Exceptions] WHERE replace(ltrim(replace(Code, '0', ' ')), ' ', '0') = @Code AND ProfileName IS NOT NULL) a;
*/
SET @db_cursor = CURSOR FOR
SELECT ProfileName FROM @ProfileNameTable
OPEN @db_cursor;
FETCH NEXT FROM @db_cursor INTO @profileName;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @profileName
/* SET @hierarchyFlag = (SELECT TOP 1 HierarchyFlag FROM [dbo].[vSB_IdM_Hibis_Profile] WHERE ltrim(rtrim(HibisProfileName)) = @profileName AND HierarchyFlag IS NOT NULL);
IF (@hierarchyFlag = 1)
BEGIN
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0')+''',''' +replace(ltrim(replace(b.Code, '0', ' ')), ' ', '0')+''',''0'');'
FROM [dbo].[vProfile] a, [dbo].[vProfile] b
WHERE a.Code <> b.Code AND ISNULL(@profileName, 'A') = ISNULL(b.HibisProfileName, 'A') AND replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0') = @Code
UNION
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(b.Code, '0', ' ')), ' ', '0')+''',''' +replace(ltrim(replace(a.code, '0', ' ')), ' ', '0')+''',''0'');'
FROM [dbo].[vProfile] a, [dbo].[vProfile] b
WHERE a.Code <> b.Code AND ISNULL(@profileName, 'A') = ISNULL(b.HibisProfileName, 'A') AND replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0') = @Code
UNION
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(dv.Code, '0', ' ')), ' ', '0')+''',null,''1'');'
FROM [dbo].[vProfile] dv
WHERE replace(ltrim(replace(dv.Code, '0', ' ')), ' ', '0') = @Code
UNION
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(b.OP, '0', ' ')), ' ', '0')+''',''' +replace(ltrim(replace(a.code, '0', ' ')), ' ', '0')+''',''0'');'
FROM [dbo].[vProfile] a, [dbo].[Hierarchy_Ex] b
WHERE ISNULL(@profileName, 'A') = ISNULL(b.PROFILENAME, 'B') AND replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0') = @Code
END
ELSE IF (@hierarchyFlag = 2)
BEGIN
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0')+''',''' +replace(ltrim(replace(b.Code, '0', ' ')), ' ', '0')+''',''0'');'
FROM [dbo].[vProfile] a, [dbo].[vProfile] b
WHERE a.Code <> b.Code AND ISNULL(@profileName, 'A') = CONCAT(ISNULL(b.HibisProfileName, 'A'), '_STUDENT') AND replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0') = @Code
UNION
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(dv.Code, '0', ' ')), ' ', '0')+''',null,''1'');'
FROM [dbo].[vSB_IdM_Hibis_Profile] dv
WHERE replace(ltrim(replace(dv.Code, '0', ' ')), ' ', '0') = @Code
UNION
SELECT 'insert into ban_nad (OP,NADREJEN,VODJA) VALUES (''' +replace(ltrim(replace(b.OP, '0', ' ')), ' ', '0')+''',''' +replace(ltrim(replace(a.code, '0', ' ')), ' ', '0')+''',''0'');'
FROM [dbo].[vProfile] a, [dbo].[Hierarchy_Ex] b
WHERE ISNULL(@profileName, 'A') = ISNULL(b.PROFILENAME, 'B') AND replace(ltrim(replace(a.Code, '0', ' ')), ' ', '0') = @Code
END
*/
FETCH NEXT FROM @db_cursor INTO @profileName
END
CLOSE @db_cursor;
DEALLOCATE @db_cursor;
(2 rows affected)
Profile 1
Profile 2
As your table definitions and data are not listed - you will have to test which part is not causing the multiple result to be generated (or it could be your calling application only saving the first dataset, not both)