【发布时间】:2015-11-11 22:09:48
【问题描述】:
为什么会失败并显示以下错误消息:
消息 102,级别 15,状态 1,行 1 “reporting_rawdata_v2”附近的语法不正确。
表的名称是“dbo.reporting_rawdata_v2”,但无论有/没有“dbo”,它仍然失败......
Use reporting2
Go
Declare @Backupdate varchar(25), @sql NVARCHAR(max)
Set @Backupdate = REPLACE(REPLACE(CAST(CONVERT(VARCHAR(20), SYSDATETIME(), 100) as varchar),' ','_'),':', '')
Select @Backupdate
SET @sql = 'Select * Into reporting_rawdata_BACKUP_' + @Backupdate + 'From reporting_rawdata_v2';
EXEC (@sql);
【问题讨论】:
-
没有“Into”是否可以工作?
-
尝试在最后一个字符串的开头,'from'之前添加一个空格?
-
将您的 exec 更改为 Print 以查看实际的 sql 是什么......之后应该直接修复
-
缺少一些标签,例如 dbms。
-
动态命名的表和“发件人”之间没有空格,所以可以解决这个问题。
标签: sql sql-server tsql execute