I'm very new to stored procedures so this is probably something very dumb. I want to pass a name of a table to be created to my stored procedure. I'm using the variable @tableName in the code below but I'm getting an error:
Server: Msg 170, Level 15, State 1, Procedure usp_CodeGreyDat a, Line 22
Line 22: Incorrect syntax near '@tableName'.
Server: Msg 137, Level 15, State 1, Procedure usp_CodeGreyDat a, Line 29
Must declare the variable '@tableName'.
Server: Msg 170, Level 15, State 1, Procedure usp_CodeGreyDat a, Line 22
Line 22: Incorrect syntax near '@tableName'.
Server: Msg 137, Level 15, State 1, Procedure usp_CodeGreyDat a, Line 29
Must declare the variable '@tableName'.
Code:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*
Name: usp_CodeGreyData
Description: This stored procedure is used to pull some data from the
codegreydiv table to display code grey diversion and status information.
Author: Doug Morand
Modification Log: Change
Description Date Changed By
Created procedure 11/10/2008 Doug Morand
*/
ALTER PROCEDURE usp_CodeGreyData
--declare variables to be passed
@startDate datetime, -- start date to search from
@endDate datetime, -- end date to search from
@tableName char --name of newly created table
AS
BEGIN
--declare local variables if any are needed
CREATE TABLE @tableName(
id int not null primary key
cgstatus varchar(50),
divstatus varchar(50),
date datetime,
time datetime
)
INSERT into @tableName(cgstatus,divstatus,date,time)
SELECT
case codegreystatus
when 0 then ''
when 1 then 'Active'
end AS cgstatus,
case diversionstatus
when 0 then ''
when 1 then 'Active'
end AS divstatus,
date,time
from tblCodeGreyDiv
where (date >= @startDate and date <= @endDate)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Comment