I try to get data by cursor such as below code but get error that :
A cursor with the name 'MY_CURSOR' already exists.
I search and found out that I should use LOCAL
word in definition of cursor such as DECLARE MY_CURSOR LOCAL CURSOR
but get error again that
Invalid usage of the option local in the DECLARE CURSOR statement.
How can i fix this?
DECLARE @tag AS NVARCHAR(1000)
DECLARE @tempTbl AS TABLE (tagcol NVARCHAR(1000))
DECLARE MY_CURSOR LOCAL CURSOR
FOR
SELECT bt.Tag
FROM BlogTable AS bt
WHERE bt.IsEnglish = 0
AND bt.IsActive = 1
AND bt.IsDelete = 0
OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @tag
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @tempTbl
SELECT *
FROM dbo.FunSpliteStr(@tag, '،')
FETCH NEXT FROM MY_CURSOR INTO @tag
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
SELECT tagcol
FROM @tempTbl AS tt
GROUP BY
tt.tagcol
TRY THIS: It's also a way of doing that
DECLARE @tag AS NVARCHAR(MAX)
SELECT @tag = COALESCE(@tag + ',', '') + bt.Tag
FROM BlogTable AS bt
WHERE bt.IsEnglish = 0
AND bt.IsActive = 1
AND bt.IsDelete = 0
SELECT *
FROM dbo.FunSpliteStr(@tag, '،')