Using Declare to assign variables

Hi All,
Database:Pubs
SQL Server 2012
Objective of Query: Creating a Store Procedure To Retrieve all authors by state.....but is not running properly.I 'm not sure whether my logic is sound or not.
Error Code(s): Msg 156, Level 15, State 1, Procedure Info, Line 7
Incorrect syntax near the keyword 'Declare'.
Thanks for your explanation and time. Below is the sample query.
Create procedure Info
  Declare @state char(2)
  Set @state='CA'
Begin
 Select au_id,
        state,
        au_fname
FROM authors
Where state=@state
End
GO
  Thank-you
SQL75

Hi
Try this, u missed 'AS'
Create procedure Info
As
  Declare @state char(2)
  Set @state='CA'
 Select au_id,
        state,
        au_fname
FROM authors
Where state=@state
GO
Seth Hop

Similar Messages

  • Using a dynamically assigned variable in a procedure ?

    Hello every one ..
    I had a small problem in writing a query..
    Actually i had requirement of creating a tablespace  using a procedure
    My procedure is :
    create or replace procedure datafile_test as
    df_location varchar2(600);
    begin
    select distinct substr(file_name,1,instr(file_name,'/',-1)) into df_location from dba_data_files;
    dbms_output.put_line(' Created data file location is' ||df_location);
    end;
    This procedure is working alright but now my requirement is to use that value stored in df_location variable in
    create tablespace my_tbs <df_location>/tbs.dbf size 20m;  // i need to write this statement in my procedure .. how can i bring df_location value in my query
    is it possible to do it ?
    thanks in advance..

    Hello vinay raj
    Ok, your original statement was not right and I have not checked it
    Try this one, it should work:
    create or replace procedure datafile_test
    as
       df_location    varchar2(600);
        v_statement    VARCHAR2(4000);
    begin
        select distinct substr(file_name,1,instr(file_name,'/',-1)) into df_location from dba_data_files;
        v_statement := 'CREATE TABLESPACE MY_TBS DATAFILE ' || CHR(39) || df_location || '/tbs.dbf' || CHR(39) || ' SIZE 20M '
           --- This is optional, but I use this:  
                    || 'AUTOEXTEND OFF LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON'
        EXECUTE IMMEDIATE v_statement;
        dbms_output.put_line('Tablespace is created: "' || v_statement || '"'));
    end;
    I hope it helps you!

  • Using java class and variables declared in java file in jsp

    hi everyone
    i m trying to seperate business logic form web layer. i don't know i am doing in a right way or not.
    i wanted to access my own java class and its variables in jsp.
    for this i created java file like this
    package ris;
    import java.sql.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class  NewClass{
        public static void main(String args[]){
            Connection con = null;
            ResultSet rs=null;
            Statement smt=null;
            try{
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                con=DriverManager.getConnection("jdbc:mysql:///net","root", "anthony111");
                smt=con.createStatement();
               rs= smt.executeQuery("SELECT * FROM emp");
               while(rs.next()){
                String  str = rs.getString("Name");
                }catch( Exception e){
                    String msg="Exception:"+e.getMessage();
                }finally {
          try {
            if(con != null)
              con.close();
          } catch(SQLException e) {}
    }next i created a jsp where i want to access String str defined in java class above.
    <%--
        Document   : fisrt
        Created on : Jul 25, 2009, 3:00:38 PM
        Author     : REiSHI
    --%>
    <%@page import="ris.NewClass"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <h1><%=str%></h1>
        </body>
    </html>I wanted to print the name field extracted from database by ResultSet.
    but it gives error cannot find symbol str.
    please help me to find right way to do this.
    i am using netbeans ide.

    Very bad approach
    1) Think if your table contains more than one NAMEs then you will get only the last one with your code.
    2) Your String is declared as local variable in the method.
    3) You have not created any object of NewClass nor called the method in JSP page. Then who will call the method to run sql?
    4) Your NewClass contains main method which will not work in web application, it's not standalone desktop application so remove main.
    Better create an ArrayList and then call the method of NewClass and then store the data into ArrayList and return the ArrayList.
    It should look like
    {code:java}
    package ris;
    import java.sql.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class  NewClass{
        public static ArrayList getNames(){
            Connection con = null;
            ResultSet rs=null;
            Statement smt=null;
            ArrayList nameList = new ArrayList();
            try{
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                con=DriverManager.getConnection("jdbc:mysql:///net","root", "anthony111");
                smt=con.createStatement();
               rs= smt.executeQuery("SELECT * FROM emp");
               while(rs.next()){
                nameList.add(rs.getString("Name"));
               return nameList;
                }catch( Exception e){
                    String msg="Exception:"+e.getMessage();
                   </code><code class="jive-code jive-java"><font>return nameList;</code><code class="jive-code jive-java">
                }finally {
          try {
            if(con != null)
              con.close();
          } catch(SQLException e) {}
          </code><code>return nameList;</code>
    <code class="jive-code jive-java">    }

  • PLS-00363: expression cannot be used as an assignment target

    Hi,
    Oralce9.2
    when I run the insert procedure I get the below error:
    Procedure
    PROCEDURE proc_one_insert(col1 IN OUT numeric,
    col2           IN num,
    col3     IN numeric
    BEGIN
    execute immediate proc_one_insert(2,1,111);
    END;
    Error
    PLS-00363: expression '2' cannot be used as an assignment target
    How to solve the above error ?
    With Regards
    Edited by: user640001 on Dec 2, 2010 3:04 AM

    Arun has shown you an example using PL/SQL. If you want to do something similar in other languages you have to use their style of variable declaration e.g. if you wanted to do it through SQL*Plus, you need to declare the variable within SQL*Plus itself and bind that into your calls e.g.
    SQL> create procedure p_inout (p_val in out number) is
      2  begin
      3    p_val := p_val*10;
      4  end;
      5  /
    Procedure created.
    SQL> var mynum number
    SQL> exec :mynum := 10;
    PL/SQL procedure successfully completed.
    SQL> print mynum
         MYNUM
            10
    SQL> exec p_inout(:mynum);
    PL/SQL procedure successfully completed.
    SQL> print mynum
         MYNUM
           100
    SQL>

  • Unable to Declare a Temporary Variable in Calc Script

    We are using Hyperion System 9 BI+ Analytic Administration Services. 9.2.03.0.44
    I am trying to declare a temporary variable in a calculation script.
    We have found several guides and examples in the support documentation that give us a step by step instruction on how to 1.) declare the variable, then 2.) Assign a value.
    Example:
    /* Declare the variable */
    VAR TotalAllocDept;
    /* Baseline Fix */
    FIX ("FY10","Jan","BU Version_1", "Actual", "NoProd", "NoCust")
    /* Assign a value to the variable */
    TotalAllocDept = ("Alloc_HR"+"Alloc_IT"+"Alloc_FIN");
    ENDFIX
    /* Allocate overhead based on Total Alloc Dept Variable */
    FIX ("FY10","Jan","BU Version_1", "Actual", "NoProd", "NoCust")
    "Alloc_5xSS" = @ALLOCATE("Alloc_Overhead","Account", TotalAllocDept,, share);
    ENDFIX
    However, when we try to check the syntax, we are given various error messages such as:
    Error parsing FIX STATEMENT "invalid object type" and
    "Invalid member name" and
    Invalid Calc Script syntax.
    Can anyone suggest some techniques that we can try or alternative ways of entering the text to make it possible for us to use temporary variables?

    A variable must be declared within a calc member block and can only exist for the scope of that block.
    This would work (not that you would necessarily want it)"
    /* Allocate overhead based on Total Alloc Dept Variable */
    FIX ("FY10","Jan","BU Version_1", "Actual", "NoProd", "NoCust")
    "Alloc_5xSS"
    TotalAllocDept = ("Alloc_HR""Alloc_IT""Alloc_FIN");
    "Alloc_5xSS" = @ALLOCATE("Alloc_Overhead","Account", TotalAllocDept,, share);
    ENDFIX
    Regards,
    Cameron Lackpour

  • PLS-00363: expression '' cannot be used as an assignment target - HELP :-(

    Hi Guys,
    This is a procedure I have in the body of a package:
    PROCEDURE SUM_EVENTS (p_trial_no IN NUMBER,
                                  p_country_resion IN VARCHAR2,
                                  p_loc_no IN NUMBER,
                                  p_setup_flag IN VARCHAR2,
                                  p_event_changed IN OUT NUMBER) ISWhen I call this in SQLplus with this:
    exec DB_CALC.sum_events(340,'USA',1,'Y',3700);I get this:
    ERROR at line 1:
    ORA-06550: line 1, column 54:
    PLS-00363: expression '3700' cannot be used as an assignment target
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignoredAny ideas what I'm doing wrong?
    Thanks!

    p_event_changed is declared as an IN OUT parameter. You need to provide a variable in which the OUT values can be written to..
    something like
    declare
    out_val number := 3700;
    begin
    DB_CALC.sum_events(340,'USA',1,'Y',out_val);
    end;

  • PLS-00363: expression 'I' cannot be used as an assignment target

    Hello all
    I have a Package and I have one procedure in it .
    I have use dmlset inside this .
    Inside that procedure I have a cursor and inside the FOR loop I have mentioned something .
    FOR i IN 1 .. No_of_rec LOOP
    If....
    End if ;
    i := i+1 ;
    END LOOP;
    I have mentioned before end loop i := i+1 ; when i execute this package it is showing this error .
    "PLS-00363: expression 'I' cannot be used as an assignment target"
    What could be the problem?

    Of course,
    My example is showing that index I in loop is same thing as parameter IN in procedure1. Its value, not reference. I is passed as VALUE to LOOP just like PARAM1 is passed as value to PROCEDURE1. Trying to assignment something to I or PARAM1 will generate same error.
    Also another interesting example is
    CREATE OR REPLACE
    PROCEDURE procedure1(
        param1 IN OUT NUMBER)
    AS
    BEGIN
      param1 := 0;
    END procedure1;
    BEGIN
      FOR i IN 1..3
      LOOP
        procedure1(i);
      END LOOP;
    END;
    In this case procedure1 is correct but loop stmt is not. It will generate same error.
    After doing this examples i also concluded that procedure cant return value it can modify existing value of variable which is declared (uninitialized or initialized, OUT or IN OUT ) in upper PLSQL block (named or unnamed PLSQL block)

  • Garbage Collection facilitation by assigning variables to null

    Hello,
    I understand Garbage Collection (GC) can be facilitated by assigning variables to null. Is this true for all variables?
    I have a class and there are some member variables which are strings. Also i have some methods with some string variables declared and defined inside the method. I am assigning null to class member variables and also the string variables of the method.
    is it correct to assign null and faciliate GC for the string variables declared and defined inside the method?
    Class A {
    String t1;
    public void test() {
    String t2 = "test";
    // processing
    t2 = null; // Will this facilitate GC?
    public static void main (String[] args) {
    test();
    A obj = new A();
    A.t1 = "testclass";
    A.t1 = null; // Will this faciliate GC?
    Thanks, Aravinth

    In fact, the java heap is divided into a space for new allocations, and two survivor spaces. The algorithm for when collection occurs in each space is complex, and tuning GC is an interesting topic all its own. Follow the best advice you have been given ... chillax. The JVM has GC under control.
    <think/> Of course, having said this, you can have memory leaks if you create references that never go out of scope, even if they are no longer used. Avoid this.
    � {�                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • What are Parameters? How are they differenet from Variables? Why can't we use variables for passing data from one sequnece to another? What is the advantage of using Parameters instead of Variables?

    Hi All,
    I am new to TestStand. Still in the process of learning it.
    What are Parameters? How are they differenet from Variables? Why can't we use variables for passing data from one sequnece to another? What is the advantage of using Parameters instead of Variables?
    Thanks in advance,
    LaVIEWan
    Solved!
    Go to Solution.

    Hi,
    Using the Parameters is the correct method to pass data into and out of a sub sequence. You assign your data to be passed into or out of a Sequence when you are in the Edit Sequence Call dialog and in the Sequence Parameter list.
    Regards
    Ray Farmer

  • [Bash] How to `declare` a global variable inside a function?

    #!/bin/bash
    # Not using declare -A, array will be treated as indexed array rather than an associative array
    seta()
    for ((n=0;n<$1;n++)); do
    printf -v a_$n[k] %s k$n
    printf -v a_$n[j] %s j$n
    eval echo inside seta: a_$n[k] = \$\{a_$n\[k\]\}
    done
    seta 3
    echo outside: a_0[k] = ${a_0[k]}
    echo outside: a_0[j] = ${a_0[j]}
    echo
    # Use declare -A inside function, array will be undefined outside
    setb()
    for ((n=0;n<$1;n++)); do
    declare -A b_$n # Note here
    printf -v b_$n[k] %s k$n
    printf -v b_$n[j] %s j$n
    eval echo inside setb: b_$n[k] = \$\{b_$n\[k\]\}
    done
    setb 3
    echo outside: b_0[k] = ${b_0[k]}
    echo outside: b_0[j] = ${b_0[j]}
    echo
    # The bad solution, only works if we know beforehand how many c_? arrays will be assigned inside setc()
    for ((n=0;n<3;n++)); do
    declare -A c_$n
    done
    setc()
    for ((n=0;n<$1;n++)); do
    printf -v c_$n[k] %s k$n
    printf -v c_$n[j] %s j$n
    eval echo inside setc: c_$n[k] = \$\{c_$n\[k\]\}
    done
    setc 3
    echo outside: c_0[k] = ${c_0[k]}
    echo outside: c_0[j] = ${c_0[j]}
    My original code does the declare -A as in setb(). I was surprised when I saw all blank output... Now the problem is illustrated clearly by the setb() example.
    The setc() example works, but a bit ugly: look at the two 3's...
    My ideal solution would be, something like `declare_global -A b_$n` in setb()
    Any ideas?

    with current bash versions, i don't think it is possible to declare global associative arrays in functions.
    what you are after is the "-g" option of typeset which is available in zsh.
    i think i read somewhere that something similar may be planned for bash 4.2.

  • How to use wild card with variable in powershell

    HI
    i am trying to use wild card with variable but getting an error message, "You cannot call a method on a null-valued expression."
    $src = 'C:\Temp'
    $TabletzipPath = $src + "tab*.zip"
    i would like to copy the tablet zip file which is placed in in $src to be copied in $TabletzipPath.
    i am using tab* because this file name changes continuously. so if i give a fix name for example tablet1.zip than it works fine.

    Not sure if the wildcard will work without seeing how you're using the variable.
    That said, I can say that it looks like you're missing the backslash between the $src path and the wildcard filename. As-is the above code assigns a value to $TabletzipPath of "C:\temptab*.zip" instead of what you are likely expecting ("C:\temp\tab*.zip")
    Jason Warren
    @jaspnwarren
    jasonwarren.ca
    habaneroconsulting.com/Insights

  • Using a dynamic table variable in a stored procedure

    SQL Server can do this where you declare a table variable and insert / modify / delete rows in that table without it ever being actually ON the database.
    Can Oracle do this?
    I know I can do things like pass in a unique user id, create the table in the procedure with the user ID appended, etc ...
    but this procedure is going to be accessed via two modes, a batch job as well as online. The batch job may run this procedure 500 times.
    What I'm trying to is figure out a way to return a recordset of errors that occured in the job, simple, 3 lines like so:
    LineNumber NUMBER,
    Severity VARCHAR(10),
    Error_Msg VARCHAR(200)
    is there any 3 dimensional way of storing these records when the errors occur, then returning them as a select statement at the end of the procedure?
    Thanks,

    Why not create a table
    CREATE TABLE error_log (
      job_id  NUMBER,
      line_number NUMBER,
      severity VARCHAR2(10),
      error_msg VARCHAR2(200)
    CREATE SEQUENCE seq_error_log_job_id
      START WITH 1
      INCREMENT BY 1
      CACHE 100;In your procedure, you would get a new job_id from the sequence, insert whatever records you want in the error log table using that job_id and then return a REF CURSOR where you select from the error_log table using the job_id.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • IP: Use of input-ready variable in planning function

    Dear all,
    I'm using an input-ready variable for fiscal year (0P_FYEAR) in my input ready query. It's used for restricting my columns.
    I'd like to use the value of this variable in my planning function and I use VARV for that in the FOX.
    However, when implementing the pl.function as a button in the BEx Analyzer I need to fill in the static parameters the VAR_VALUE_1 with a value.
    If I delete this line from the static parameters my plfunction end swith an error.
    I like this value of course to be filled with value of fiscal year entered by the user when starting the query.
    Does anybody know how to solve this?
    Kind regards, Harjan

    Hi Johannes,
    Thanks for all the useful information!
    Another thing on using PF.
    I've got two workbooks with different queries but using <u>same</u> filter.
    Queries differ in keyfigures, but are on same cubes in MultiProvider.
    I can run the workbooks simultaneously: no locks occur.
    I've got two planning functions that make calculations on the keyfigures entered in the workbook.
    However when I inplement the PF's in both workbooks and assign the dataprovider as filter, i do get locks!
    So, the PF also uses the same filter, but doesn't take into account the different keyfigures.
    In the fox-formula i don't have the option to make conditions on keyfigure values (field keyfigname), neither to enter them in the filter.
    Do you have any thoughts on this?
    <u>Second</u> point:
    When i filter on a navigational attribute and execute the pf, i get errors on my pf.
    It states it can't find the value of the characteristic to which the navigational attr belongs. F.i. when i filter on nav attr 'customer group'  (attr of char 'customer') and execute pf, the system gives an error on the value of char 'customer'.
    It states: value of characteristic customer is notincluded in the selection.
    Any thoughts on this one?
    Thanks in advance!
    Kind regards, Harjan

  • Must declare the Scalar variable *@prompt*.. (IES 10901)".

    Hi,
    I am getting an error: "Database error Must declare the Scalar variable *@prompt*.. (IES 10901)".
    backend: SQLServer
    The dim, Lovs are valid in IDT universe.
    There is a Fiscal Year Month Dim in Universe=SELECT
      cast(convert(varchar(6),DATEADD (YEAR,"COST_SUMMARY_FACT_VR"."FISC_YEAR"-1900,DATEADD(MONTH,"COST_SUMMARY_FACT_VR"."FISC_PERIOD"-1,DATEADD(DAY,0,0 ))),112) as int)
    FROM "COST_SUMMARY_FACT_VR"
    Lov
    There are two LOVs FP_From, FP_To
    1) FP_From= select distinct cast(convert(varchar(6),DATEADD (YEAR,"COST_SUMMARY_FACT_VR"."FISC_YEAR"-1900,DATEADD(MONTH,"COST_SUMMARY_FACT_VR"."FISC_PERIOD"-1,DATEADD(DAY,0,0 ))),112) as int) from COST_SUMMARY_FACT_VR order by 1
    2) FP_To=select distinct cast(convert(varchar(6),DATEADD (YEAR,"COST_SUMMARY_FACT_VR"."FISC_YEAR"-1900,DATEADD(MONTH,"COST_SUMMARY_FACT_VR"."FISC_PERIOD"-1,DATEADD(DAY,0,0 ))),112) as int) from COST_SUMMARY_FACT_VR order by 1
    Prompts
    There are two universe prompts
    1) FP_From is Numeric and LOV FP_From is attached
    2) FP_To is Numeric and LOV FP_To is attached
    Using the universe prompts in webi as
    Fiscal Year Month between FP_From and FP_To
    Qry is executing perfectly in backend.

    In addition to Visakh's solution: the reason you got the error message is because the piece of dynamic SQL is not part of the stored procedure, but constiutes a scope of its own. Thus variables declared in the surrounding procedure are not visible.
    Also, you should the dynamic SQL this way:
    SET @sql = N'
    SELECT @Result=COUNT( Id ) FROM  ' + quotename(@TableName) +
    ' WHERE RunRegisterKey=@ID'
    SET @Params = N'@Result int OUTPUT, @ID int'
    EXEC sys.sp_executesql @sql,@Params,@Result = @Result OUT, @ID = @ID
    That is, use quotename for the table name, in case you have a table named
    sys.objects; SHUTDOWN WITH NOWAIT; --
    Furthermore, pass @ID as a parameter rather than concatenating it to the string. It is both easier and safer.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Must declare the scalar variable

    I Am getting error as Must declare the scalar variable "@Imageid" for the following code,while executing,
    exec spGetPager  ' ' , ' ', ' 3 ', ' '
    In my coding I pass querystring value like 1,2,3 etc
    CREATE PROCEDURE spGetPager
          @PageNo int = 1,  
          @ItemsPerPage int = 1,  
     @Imageid int,
          @TotalRows int out  
    AS  
    BEGIN  
      SET NOCOUNT ON  
      DECLARE  
        @StartIdx int,  
        @SQL nvarchar(max),   
        @SQL_Conditions nvarchar(max),   
        @EndIdx int
          IF @PageNo < 1 SET @PageNo = 1  
          IF @ItemsPerPage < 1 SET @ItemsPerPage = 10  
          SET @StartIdx = (@PageNo -1) * @ItemsPerPage + 1  
          SET @EndIdx = (@StartIdx + @ItemsPerPage) - 1  
          SET @SQL = 'SELECT Imageid,Imagepath,imagename,username  
                    FROM (  
                    SELECT  ROW_NUMBER() OVER(ORDER BY Imageid) AS Row, *  
                          FROM  Imageupload ) AS tbl WHERE Imageid=@Imageid AND Row >= '  
                                        + CONVERT(varchar(9), @StartIdx) + ' AND  
                           Row <=  ' + CONVERT(varchar(9), @EndIdx)  
          EXEC sp_executesql @SQL  
          SET @SQL = 'SELECT @TotalRows=COUNT(*) FROM Imageupload'  
          EXEC sp_executesql  
            @query = @SQL,  
            @params = N'@TotalRows INT OUTPUT',  
            @TotalRows = @TotalRows OUTPUT  
    END
    Thanks in Advance

    you cant use variable directly in concatenation operator as its of type int. you need to cast it first as below
    CREATE PROCEDURE spGetPager
    @PageNo int = 1,
    @ItemsPerPage int = 1,
    @Imageid int,
    @TotalRows int out
    AS
    BEGIN
    SET NOCOUNT ON
    DECLARE
    @StartIdx int,
    @SQL nvarchar(max),
    @SQL_Conditions nvarchar(max),
    @EndIdx int
    IF @PageNo < 1 SET @PageNo = 1
    IF @ItemsPerPage < 1 SET @ItemsPerPage = 10
    SET @StartIdx = (@PageNo -1) * @ItemsPerPage + 1
    SET @EndIdx = (@StartIdx + @ItemsPerPage) - 1
    SET @SQL = 'SELECT Imageid,Imagepath,imagename,username
    FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY Imageid) AS Row, *
    FROM Imageupload ) AS tbl WHERE Imageid=' + CAST(@Imageid AS varchar(50)) + ' AND Row >= '
    + CONVERT(varchar(9), @StartIdx) + ' AND
    Row <= ' + CONVERT(varchar(9), @EndIdx)
    EXEC sp_executesql @SQL
    SET @SQL = 'SELECT @TotalRows=COUNT(*) FROM Imageupload'
    EXEC sp_executesql
    @query = @SQL,
    @params = N'@TotalRows INT OUTPUT',
    @TotalRows = @TotalRows OUTPUT
    END
    That being I didnt understand why you need dynamic sql here. There's no dynamicity involved as i see
     you could simply use a sql like below
    CREATE PROCEDURE spGetPager
    @PageNo int = 1,
    @ItemsPerPage int = 1,
    @Imageid int,
    @TotalRows int out
    AS
    BEGIN
    SET NOCOUNT ON
    DECLARE
    @StartIdx int,
    @EndIdx int
    IF @PageNo < 1 SET @PageNo = 1
    IF @ItemsPerPage < 1 SET @ItemsPerPage = 10
    SET @StartIdx = (@PageNo -1) * @ItemsPerPage + 1
    SET @EndIdx = (@StartIdx + @ItemsPerPage) - 1
    SELECT Imageid,Imagepath,imagename,username
    FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY Imageid) AS Row, *
    FROM Imageupload ) AS tbl WHERE Imageid=@Imageid
    AND Row >= @StartIdx
    AND Row <= @EndIdx
    SELECT @TotalRows=COUNT(*) FROM Imageupload
    END
    to achieve same requirement.
    Make sure you read
    http://www.sommarskog.se/dynamic_sql.html
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

Maybe you are looking for