Solved

Set variable using dynamic variable name

Posted on 2006-12-01
6
274 Views
Last Modified: 2011-09-20
I am trying to set a variable using a dynamic name and recieving an error:

 SET @FID + CAST(@OPTION_CNT AS VARCHAR(1)) = @col1
0
Comment
Question by:davidpaez
6 Comments
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 18055384
this is not possible , if you wish to do this , you need to modify your entire script to use dynamic sql
0
 
LVL 13

Expert Comment

by:Atlanta_Mike
ID: 18055427
SET @col1 = @FID + CAST(@OPTION_CNT AS VARCHAR(1))
0
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 18055441
                           
Atlanta_Mike,
i think he is looking to set something like

SET @Col1 =
SET @Col2 =
.something like this
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 69

Expert Comment

by:Scott Pletcher
ID: 18055538
You can use either a table variable or a temp table to simulate an array.  As we all know, sadly there is no direct array support in T-SQL :( .
0
 
LVL 13

Accepted Solution

by:
Atlanta_Mike earned 500 total points
ID: 18055966
Actually it looks like he is trying to set @FID1 = @Col1 and @FID2 = col2 based upon an enumerated value of @OPTION_CNT.

What is your purpose david? Maybe we can help find a work around. Scott is right this is an array. A table variable is most likely your best solution.
0
 

Author Comment

by:davidpaez
ID: 18056425
what I'm trying to do is assign values based on a results set stored in a cursor (I have other variables declared but I think this is the detail you are looking for).  I think a simple loop would also work but thought this way would be more effective.

DECLARE csrName CURSOR FOR
SELECT t1.request_id, t1.vocab, t1.menu_option
FROM tbl_f_fulfillment_def t1, tbl_f_fulfillment_def t2
WHERE t2.menu_option <= t1.menu_option and t1.active = 1
group by t1.menu_option, t1.request_id, t1.vocab

SELECT @OPTION_CNT = COUNT(*) FROM TBL_F_FULFILLMENT_DEF WHERE active = 1

OPEN csrName
FETCH NEXT FROM csrName INTO @col1, @col2, @col3
WHILE @@FETCH_STATUS = 0
BEGIN

           --SET @col1 = '@FID + (CAST(@OPTION_CNT AS VARCHAR(1)))' =
          -- SET @VOCAB2 = @col2
          -- SET '@OPTION['@OPTION_CNT']' = @col3

      --    @OPTION_CNT = @OPTION_CNT + 1

FETCH NEXT FROM csrName INTO @col1, @col2, @col3
END --WHILE
CLOSE csrName
DEALLOCATE csrName
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SQL Pivot with row total 5 28
Need help with T-SQL on SQL Server 2014 9 37
RESTORE MASTER DATABASE -- NOW 2 20
Casting is giving error in sql server 3 12
Everyone has problem when going to load data into Data warehouse (EDW). They all need to confirm that data quality is good but they don't no how to proceed. Microsoft has provided new task within SSIS 2008 called "Data Profiler Task". It solve th…
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question