slqserver中给表增加一个字段的语句怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了slqserver中给表增加一个字段的语句怎么写相关的知识,希望对你有一定的参考价值。

我的语句是:alter table test add isactive smallint(6) not null default 0; 返回的错误是: com.microsoft.jdbc.sqlserver.SQLServerConnection@12b6651 [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]? 7 ?????: ??????? int ?????? 加了 WITH VALUES后仍然返回错误!! 我的程序如下 String sql_s1 = "alter table test add isactive smallint(6) not null default 0 WITH VALUES;"; int iBack=stmt_s.executeUpdate(sql_s1); System.out.println("isactive:"+iBack); com.microsoft.jdbc.sqlserver.SQLServerConnection@12b6651 [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]? 7 ?????: ??????? smallint ??????

参考技术A 不能给smallint类型指定长度,改成下面这样就行了,在查询分析器里测试通过。
alter
table
table3
add
isactive
smallint
not
null
default
0
WITH
VALUES
参考技术B 刚才好像给你回答过了,我再具体说清楚点吧!你如果想实现插入删除和更新都自动是自动c=a+b,就要写出三个触发器,如下:
更新:
create
trigger
tri_update
on
abc
for
update
as
begin
declare
@a
varchar(20)
declare
@b
varchar(20)
declare
@c
varchar(20)
select
@c=a+b,@a=a,@b=b
from
inserted
update
abc
set
c=@c
where
a=@a
and
b=@b
end
插入
create
trigger
tri_insert
on
abc
for
insert
as
begin
declare
@a
varchar(20)
declare
@b
varchar(20)
declare
@c
varchar(20)
select
@c=a+b,@a=a,@b=b
from
inserted
update
abc
set
c=@c
where
a=@a
and
b=@b
end
删除
create
trigger
tri_delete
on
abc
for
delete
as
begin
declare
@a
varchar(20)
declare
@b
varchar(20)
declare
@c
varchar(20)
select
@c=a+b,@a=a,@b=b
from
deleted
update
abc
set
c=@c
where
a=@a
and
b=@b
end
你看行不行,我已经测试过了可以

这个SQL语句怎么写:将一个字段里的值复制添加到另一个字段中

比如,有二个字段A和B,A字段是值是"我",B字段值是"们",怎样用update语句将B字段的值复制到A中,并且和A组合要放到原有内容的后面.更新后A字段应该是"我们", B字段不变.
那用insert追加 该怎么写呢

两条sql就可以了
思路:1,现在defaultpic中写添加的sql
2,然后在另一个表中删除该字段就可以了
参考技术A update 表名 set a=a+(select b from 表名 where b='们' group by b) where a='我'


update 表名 set a=a+b where a='我' and b='们'

如果还想insert那么,你的意思不太明确。就正常就可以了。
你是想新插入的字段也自动按这个规则变化的话,就做个触发器就好了。
参考技术B --如果是在两表之间实现,则是如下代码
update 表1 set 表1.字段A=表1.字段A+(select 表2.字段B from 表2 where 表1.Id=表2.Id)
参考技术C UPDATE tableA SET tableA.A= tableB.B WHERE tableA.id=tableB.id
试试吧。
参考技术D update 表 set A=A+B本回答被提问者采纳

以上是关于slqserver中给表增加一个字段的语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章

oracle中给表添加一个数值类型为double的列,出现缺少关键字这个问题怎么解决?

Oracle 给表加多个字段

sql 表A添加一个非自增长字段B ,B 是主键,不能为空 语句该怎么写 或者怎么设置

sql语句 给表增加一列并设置默认值

oracle数据库中给字段加默认值的问题

mysql 怎么给一个表一次增加多个字段?