Try this:
ALTER PROCEDURE sp_ArchiveTable1(
@StartDate datetime,
@EndDate datetime,
@DateColumn VARCHAR(100),
@TableName VARCHAR(100),
@NewTableName VARCHAR(100)
)
AS
BEGIN
DECLARE @NextIDs TABLE(UniqueID int primary key)
DECLARE @statement nchar(1000) = N'SELECT * INTO '+@NewTableName+' FROM '+@TableName+'
WHERE '+@DateColumn+' BETWEEN '''+CONVERT(VARCHAR(100), @StartDate)+''' AND '''+CONVERT(VARCHAR(100), @EndDate)+''''
PRINT @statement
EXEC sys.sp_ExecuteSQL @statement
END
go
But you'll have to be careful about
SQL injection[
^].
See
SQL Injection: What is it?[
^]
--Amit