存储过程中create table tablename中的tablename能否使用变量或参数来指定?

sclxf 2004-10-14 08:39:37
我写了个存储过程如下,本意想创建一个表,表名为当前日期,想通过变量来实现。
但语法检查总是提示在create table @date1行出错。
CREATE PROCEDURE ScoreTable
AS
declare @date1 nvarchar(50)
set @date1=DAY(GETDATE())
create table @date1
(stu_name nvarchar(50),
score nvarchar(10)

)
GO
于是我把date1前的@去掉,语法检查通过,但执行该存储过程却声称了名为date1的表,
不是我想要的结果。
请问该怎么写才能得到我想要的结果?
谢谢!
...全文
138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
efarer 2004-10-15
  • 打赏
  • 举报
回复
exec ('create table '+@aa+'(id int)')
rfq 2004-10-14
  • 打赏
  • 举报
回复
可以
DECLARE @STRSSQL VARCHAR(1000)
SET @STRSQL='CAREATE TABLE'+@TABLENAME+'.....'
EXEC(@STRSQL)
aliren 2004-10-14
  • 打赏
  • 举报
回复
使用变量是需要'+'的,如'+@datel+'
Andy__Huang 2004-10-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE ScoreTable
AS
declare @date1 nvarchar(50)
set @date1=DAY(GETDATE())
exec('create table '+@date1+' (stu_name nvarchar(50), score nvarchar(10)')

GO
victorycyz 2004-10-14
  • 打赏
  • 举报
回复
exec('create table '+@date1+'
(stu_name nvarchar(50),
score nvarchar(10)
)'
)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧