You cannot use a variable as the tablename within a create table statement.<br><br>However the EXEC statement can execute a piece of SQL stored within a variable. What you can do is create a stored procedure that stores your entire CREATE TABLE statement into a variable, substituting the tablename with the current date. The code within this variable is then executed, creating the table. The following code is an example :<br><br>------------------------------------<br>IF Exists (Select Name<br> FROM SysObjects<br> WHERE Name = 'CreateTable' AND Type = 'P' )<br> DROP Procedure CreateTable<br>GO<br><br>CREATE PROCEDURE CreateTable<br>AS<br> DECLARE @CString VARCHAR(1000)<br> DECLARE @CDate VARCHAR(10)<br><br> SET @CDate = LEFT(CONVERT(VARCHAR,GetDate(),102),4)+<br> SUBSTRING(CONVERT(VARCHAR,GetDate(),102),6,2)+<br> RIGHT(CONVERT(VARCHAR,GetDate(),102),2)<br><br> SET @CString = 'CREATE TABLE MyTable'+@CDate<br> SET @CString = @CString + ' ( Column1 VARCHAR(10),'<br> SET @CString = @CString + ' Column2 VARCHAR(20),'<br> SET @CString = @CString + ' Column3 DECIMAL )'<br><br> EXEC(@CString)<br>GO<br>----------------------------------<br>By running the CreateTable stored procedure, a table is created named MyTableyyyymmdd with three columns.<br><br>This procedure can be run either from within other stored procedures, or directly from DTS.<br><br>Note that a table name cannot begin with a number, so a tablename of just the date is invalid - it needs to start with at least one alphabetic character.<br><br>Hope it helps<br><br>Chris.<br>