如何在 SQL SERVER 中用变量作表名 insert @table_name

Wonny 2000-04-17 05:03:00
我在数据库中用年号作表名,如 user2000(明年将自动生成user2001),我希望在基本数据表 BasicUserData 中添加 INSERT 和 DELETE 触发器
declare @table_name varchar(20),
select @table_name='user'+datename(year,getdate())
如何才能实现 insert @table_name ...-------> insert user2000(或 user2001)

谢谢!
...全文
323 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Axiong 2000-04-19
  • 打赏
  • 举报
回复
我原来使用的方法如下:
declare @table_name varchar(20),
select @table_name=“user”+datename(year,getdate())
exec("insert "+@table_name+" ...")-------> insert user2000(或 user2001)

其实该问题就是对象用字符串连接后的使用问题,每一个select ,delete, update等都是一个事务,用执行procedure就可以了。
其他update ,delet ,select同理

我的范例:
declare @tablename char(20)
select @tablename="user"+datename(year,getdate())
exec("select * from "+@tablename+"")


ClickNo 2000-04-19
  • 打赏
  • 举报
回复
根据我所知,在Sql Server中用变量传递对象,如:table,views等都不允许.如想动态创建table or view,可在应用程序端,传递SQL语句实现(我用过Delphi实现过'
LaoZheng 2000-04-17
  • 打赏
  • 举报
回复
exec(SQLString)

34,575

社区成员

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

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