sqlserver 动态添加表||字段

heavilyarmed 2009-07-02 08:56:40
现在在做个东西,需要在页面动态的添加表, 添加、更该字段。
原表:

create table muti
(
id int identity (1,1) primary key,
stuname nvarchar(20),
stusex nvarchar(10),
stuphone nvarchar(20)
)
--添加一个字段
alter table muti add stuaddr nvarchar(20)

这都是可以的,但是在java内(在上面的话执行前),单独写那句话,不报错,但是不能添加字段(返回-1),当在数据库添加那个字段后,在执行java时就会报“各表中的列名必须唯一。在表 'muti' 中多次指定了列名 'stuaddr'。”请各位帮帮忙
...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
好了,查出来了,谢谢,那动态的创建表也是这样吧?
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
能说说怎么提交吗?不会呀
中国风 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 heavilyarmed 的回复:]
怎么还是添加不进去呢?
[/Quote]
需要先提交建表的事务
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
怎么还是添加不进去呢?
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
谢谢
中国风 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 heavilyarmed 的回复:]
引用 3 楼 roy_88 的回复:
需要动态写法
看后面一段用

exec('alter table muti  add  stuaddr  nvarchar(20)')



在java报了语法错误
[/Quote]

放在存储过程里,java调用存储过程

create proc p(@tab sysname,@col sysname)--传参表名\新增列名
as
exec('alter table muti '+@tab+' '+@col+' nvarchar(20)')
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nalnait 的回复:]
动态语句就可以了
[/Quote]

如果动态语句呢
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 roy_88 的回复:]
需要动态写法
看后面一段用

exec('alter table muti  add  stuaddr  nvarchar(20)')
[/Quote]


在java报了语法错误
heavilyarmed 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 roy_88 的回复:]
需要动态写法
看后面一段用

exec('alter table muti  add  stuaddr  nvarchar(20)')
[/Quote]

在java内也是这样写吗?
中国风 2009-07-02
  • 打赏
  • 举报
回复
需要动态写法
看后面一段用

exec('alter table muti add stuaddr nvarchar(20)')
vivian_lanlan 2009-07-02
  • 打赏
  • 举报
回复
各表中的列名必须唯一。在表 'muti' 中多次指定了列名 'stuaddr'。
----------------------------

说得很清楚了呀.
nalnait 2009-07-02
  • 打赏
  • 举报
回复

动态语句就可以了

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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