我是想在sqlserver里 按日期创建表
创建了一个用于创建新表的proc 传入当前日期为参数作为表名 我跟踪了语句 执行到存储过程里的print @tableN 一处是正常的 但执行exec创建表格的语句时 就出现了如题所示的异常 请指教...
///////////////////////
declare @tableName nvarchar(50)
set @tableName=REPLACE( SUBSTRING(CONVERT(nvarchar, GETDATE()),1,10),' ','')
print @tableName
if OBJECT_ID(@tableName)is not null
begin
print 'exist'
end
else
begin
print 'create table'
exec up_CreateTable @tableName //在此调用上面所创建的proc
end
////////////
drop proc up_CreateTable
go
create proc up_CreateTable
@tableN nvarchar(50)
as
print @tableN+'*****'//语句执行到这里一步都正常 但就在下面的exec语句里出现了如题所 示的异常
exec( 'CREATE TABLE' +@tableN+'(
[id] [int] NULL,
[img] [varbinary](max) NULL,
[test] [nvarchar](max) NULL,
[address] [nvarchar](50) NULL,
[age] [int] NULL
) on primary
go'
)
go
table 后面多加个空格看看,或者@table变量前加个空格
useless...
you are right, it works...Thanks
@Tann007: not at all