Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. How to Pass column names to query dynamically

How to Pass column names to query dynamically

Scheduled Pinned Locked Moved Database
databasehelptutorial
14 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I IMQ

    you may declare and use dynamic sql like this;

    CREATE PROCEDURE GetRecords ( @DynamicColumnName varchar(100) ) AS

    /* Create a variable @SQLStatement */
    DECLARE @dynamicsql varchar(255)

    /* Enter the dynamic SQL statement into the*/
    /* variable @SQLStatement*/
    SELECT @dynamicsql = 'SELECT Column1, Column2, Column3 ' +
    'FROM TableName ORDER BY ' + @DynamicColumnName

    /* Execute the SQL statement*/
    EXEC(@dynamicsql)

    Hope this will help.

    ________________ Tehmina Qureshi ****************

    V Offline
    V Offline
    veereshIndia
    wrote on last edited by
    #5

    Dear Sir, Thanks for your help.But it's not comming here.Can you tel me how to use that in this query.Here is my query alter procedure LogProc ( @UserId varchar(500), @Password varchar(500) ) as Begin declare @str1 varchar(500) declare @str2 varchar(500) declare @str3 varchar(500) declare @str4 varchar(500) select @str1=AstId from UserTable where UserId=@UserId and Password = @Password; select @str2=RoleID from AstProf where AstId =@str1 ; set @str4=@str2; select @str3=MenuId from MenuTable where @str4='y'; exec(@str4); select @str3; End exec LogProc 'veeresh','veeresh' But its giving error Like this (1 row(s) affected) Server: Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'R1'.

    i want to join this group

    I V 2 Replies Last reply
    0
    • V veereshIndia

      Dear Sir, Thanks for your help.But it's not comming here.Can you tel me how to use that in this query.Here is my query alter procedure LogProc ( @UserId varchar(500), @Password varchar(500) ) as Begin declare @str1 varchar(500) declare @str2 varchar(500) declare @str3 varchar(500) declare @str4 varchar(500) select @str1=AstId from UserTable where UserId=@UserId and Password = @Password; select @str2=RoleID from AstProf where AstId =@str1 ; set @str4=@str2; select @str3=MenuId from MenuTable where @str4='y'; exec(@str4); select @str3; End exec LogProc 'veeresh','veeresh' But its giving error Like this (1 row(s) affected) Server: Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'R1'.

      i want to join this group

      I Offline
      I Offline
      IMQ
      wrote on last edited by
      #6

      Veer, you did not fully understood the concept of dynamic sql. so 1st you have to understand what the dynamic sql is; Dynamic SQL is actually the complete sql statement, including all the necessory clauses required for executing the sql statemnt like as "select * from tablename" so if u hav a variable declared for dynamic sql u must assign a complete statement in it. here in ur sp u did wrong. Example:Declaration of dynamic sql

      Declare @DynamicSql varchar(2000)
      set @DynamicSql = 'SELECT * FROM MyTable'

      now you may execute the like this

      exec(@DynamicSql) /* See ! Here in execute i've given the variable name nott any procedure */

      You may do aything which you want to with Dynamic SQL. I did not understand what you want to select in you stored procedure (as i dont hav enough time to understand the code coz im at my job. May be after few time i'll correct your code and post it back to u.) If you have got an idea about Dynamic SQL you can do whatever you want. Still hav problem? You are welcome to query. Thanks

      ________________ Tehmina Qureshi ****************

      1 Reply Last reply
      0
      • V veereshIndia

        Dear Sir, Thanks for your help.But it's not comming here.Can you tel me how to use that in this query.Here is my query alter procedure LogProc ( @UserId varchar(500), @Password varchar(500) ) as Begin declare @str1 varchar(500) declare @str2 varchar(500) declare @str3 varchar(500) declare @str4 varchar(500) select @str1=AstId from UserTable where UserId=@UserId and Password = @Password; select @str2=RoleID from AstProf where AstId =@str1 ; set @str4=@str2; select @str3=MenuId from MenuTable where @str4='y'; exec(@str4); select @str3; End exec LogProc 'veeresh','veeresh' But its giving error Like this (1 row(s) affected) Server: Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure 'R1'.

        i want to join this group

        V Offline
        V Offline
        veereshIndia
        wrote on last edited by
        #7

        Hi, Thank you very much sir.I wil follow the rules. Veeresh.

        i want to join this group

        1 Reply Last reply
        0
        • I IMQ

          you may declare and use dynamic sql like this;

          CREATE PROCEDURE GetRecords ( @DynamicColumnName varchar(100) ) AS

          /* Create a variable @SQLStatement */
          DECLARE @dynamicsql varchar(255)

          /* Enter the dynamic SQL statement into the*/
          /* variable @SQLStatement*/
          SELECT @dynamicsql = 'SELECT Column1, Column2, Column3 ' +
          'FROM TableName ORDER BY ' + @DynamicColumnName

          /* Execute the SQL statement*/
          EXEC(@dynamicsql)

          Hope this will help.

          ________________ Tehmina Qureshi ****************

          R Offline
          R Offline
          Rami Said Abd Alhalim
          wrote on last edited by
          #8

          hi IsrarMuhammadQ i have error to execute dynamic sql in function

          I 1 Reply Last reply
          0
          • R Rami Said Abd Alhalim

            hi IsrarMuhammadQ i have error to execute dynamic sql in function

            I Offline
            I Offline
            IMQ
            wrote on last edited by
            #9

            Send the code and error msg i'll try to figure it out Can u describe me in words what you want to do? just describe it clearly i'll try to make you the actual understanding about what u are asking.

            ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

            R 1 Reply Last reply
            0
            • I IMQ

              Send the code and error msg i'll try to figure it out Can u describe me in words what you want to do? just describe it clearly i'll try to make you the actual understanding about what u are asking.

              ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

              R Offline
              R Offline
              Rami Said Abd Alhalim
              wrote on last edited by
              #10

              this example : -------------------------------------- CREATE FUNCTION test_fn ( @x int ) RETURNS @table TABLE ( c1 int ) AS BEGIN EXEC('select * from @table') RETURN END ----------------------------- Msg 443, Level 16, State 2, Procedure _fn__Get_All_References, Line 35 Invalid use of 'EXECUTE' within a function.

              I 1 Reply Last reply
              0
              • R Rami Said Abd Alhalim

                this example : -------------------------------------- CREATE FUNCTION test_fn ( @x int ) RETURNS @table TABLE ( c1 int ) AS BEGIN EXEC('select * from @table') RETURN END ----------------------------- Msg 443, Level 16, State 2, Procedure _fn__Get_All_References, Line 35 Invalid use of 'EXECUTE' within a function.

                I Offline
                I Offline
                IMQ
                wrote on last edited by
                #11

                Hi, Dont make it complicated. just try this in Northwind database.

                Create PROCEDURE test_GetRecords ( @DynamicColumnName varchar(100) ) AS

                /* Create a variable @dynamicsql */
                DECLARE @dynamicsql varchar(255)

                /* Enter the dynamic SQL statement into the*/
                /* variable @dynamicsql*/
                SELECT @dynamicsql = 'SELECT * ' +
                'FROM [Categories] ORDER BY ' + @DynamicColumnName + ' desc'

                /* Execute the SQL statement*/
                EXEC(@dynamicsql)

                exec test_GetRecords '[CategoryName]'

                ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

                R 1 Reply Last reply
                0
                • I IMQ

                  Hi, Dont make it complicated. just try this in Northwind database.

                  Create PROCEDURE test_GetRecords ( @DynamicColumnName varchar(100) ) AS

                  /* Create a variable @dynamicsql */
                  DECLARE @dynamicsql varchar(255)

                  /* Enter the dynamic SQL statement into the*/
                  /* variable @dynamicsql*/
                  SELECT @dynamicsql = 'SELECT * ' +
                  'FROM [Categories] ORDER BY ' + @DynamicColumnName + ' desc'

                  /* Execute the SQL statement*/
                  EXEC(@dynamicsql)

                  exec test_GetRecords '[CategoryName]'

                  ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

                  R Offline
                  R Offline
                  Rami Said Abd Alhalim
                  wrote on last edited by
                  #12

                  i want use dynamic sql in function not in stored procedure

                  I 1 Reply Last reply
                  0
                  • R Rami Said Abd Alhalim

                    i want use dynamic sql in function not in stored procedure

                    I Offline
                    I Offline
                    IMQ
                    wrote on last edited by
                    #13

                    Oops, sorry - Basically, no, you cannot use dynamic SQL in a function, and you probably shouldn't use it anyway. Writing to a temporary table is prohibited by functions.

                    ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

                    R 1 Reply Last reply
                    0
                    • I IMQ

                      Oops, sorry - Basically, no, you cannot use dynamic SQL in a function, and you probably shouldn't use it anyway. Writing to a temporary table is prohibited by functions.

                      ________________ Tehmina Qureshi We can have facts without thinking but we cannot have thinking without facts. ****************

                      R Offline
                      R Offline
                      Rami Said Abd Alhalim
                      wrote on last edited by
                      #14

                      ok Thanks where r u from?

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups