Hello,I'm trying to execute stored procedure, but having problems. Code works fine, if I run code only as a query, starting with Create Table. Under stored procedure code is working if have only Create Table method, without Insert Into. But, when I have entire code, I'm having issues. Issues with dates 1/1/2012 & 12/31/2012. I was try to change code in three different way, but getting either wrong results, or error. Thanks in advance for help!1.ALTER PROCEDURE [dbo].[ProcCalendar](@TableName varchar(50))ASdeclare @SQL varchar(1000)set @SQL = 'create table ' + @TableName + ' ( ID numeric (18, 0), CalendarDate datetime, MaxChair numeric (18, 0), MaxInside numeric (18, 0), MaxOutside numeric (18, 0) )declare @StartDate datetimedeclare @EndDate datetimeset @StartDate = 1/1/2012set @EndDate = 12/31/2012while @StartDate <= @EndDatebeginInsert into test( CalendarDate)select@StartDateset @StartDate = dateadd (dd, 1, @StartDate)end 'exec (@sql)
Query result:ID CalendarDate MaxChair MaxInside MaxOutsideNULL 1900-01-01 00:00:00.000 NULL NULL NULL2.ALTER PROCEDURE [dbo].[ProcCalendar](@TableName varchar(50))ASdeclare @SQL varchar(1000)set @SQL = 'create table ' + @TableName + ' ( ID numeric (18, 0), CalendarDate datetime, MaxChair numeric (18, 0), MaxInside numeric (18, 0), MaxOutside numeric (18, 0) )declare @StartDate datetimedeclare @EndDate datetimeset @StartDate = '1/1/2012'set @EndDate = '12/31/2012'while @StartDate <= @EndDatebeginInsert into test( CalendarDate)select@StartDateset @StartDate = dateadd (dd, 1, @StartDate)end 'exec (@sql)
Query result:Msg 102, Level 15, State 1, Procedure ProcCalendar, Line 21Incorrect syntax near '1'. 3.ALTER PROCEDURE [dbo].[ProcCalendar](@TableName varchar(50))ASdeclare @SQL varchar(1000)set @SQL = 'create table ' + @TableName + ' ( ID numeric (18, 0), CalendarDate datetime, MaxChair numeric (18, 0), MaxInside numeric (18, 0), MaxOutside numeric (18, 0) )declare @StartDate datetimedeclare @EndDate datetimeset @StartDate = ' + 1/1/2012 + ' set @EndDate = ' + 12/31/2012 + 'while @StartDate <= @EndDatebeginInsert into test( CalendarDate)select@StartDateset @StartDate = dateadd (dd, 1, @StartDate)end 'exec (@sql)
Query result:Msg 245, Level 16, State 1, Procedure ProcCalendar, Line 5Conversion failed when converting the varchar value 'create table test ( ID numeric (18, 0), CalendarDate datetime, MaxChair numeric (18, 0), MaxInside numeric (18, 0), MaxOutside numeric (18, 0) )declare @StartDate datetimedeclare @EndDate datetimeset @StartDate = ' to data type int.