0

I am trying to set variable but I get Incorrect syntax near '='..

    DECLARE @name NVARCHAR(100) = 'Some name'
    DECLARE @id INT
    EXECUTE ('SET ' + @id + ' = (SELECT mm.mmID FROM dbo.measurem AS mm
        WHERE mm.placeName = ''' + @name + ''')')
    PRINT @id

If I try like this:

SET @id= (SELECT mm.mmID FROM dbo.measurem AS mm
          WHERE mm.placeName = @name)

I get must declare variable @name although I have it as my input store procedure param.

LukStorms
  • 28,916
  • 5
  • 31
  • 45
Hrvoje T
  • 3,365
  • 4
  • 28
  • 41
  • You appear to be using Microsoft SQL Server syntax, but you have tagged your question [tag:mysql]. Which database are you really using? What does `SELECT @@version;` return? – Bill Karwin Dec 05 '21 at 04:58
  • I am using MS SQL. It is top much 5 tags so I had to put something. – Hrvoje T Dec 05 '21 at 10:09

1 Answers1

0

For declaring variable, you can go through Declaring Variable in mysql However you need to do something like this to make it run <>db-fiddle

SELECT @my_name := 'Some name';
SELECT @id;
SET @s = CONCAT (
        'Select mm.mmID into @id From measurem as mm where 
    mm.placeName='
        ,''''
        ,@my_name
        ,''''
        );
PREPARE stmt
FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SELECT @id;
ishant kaushik
  • 891
  • 6
  • 18