如何新增一字段并附值?谢谢各位大哥

daqi2010 2009-07-16 03:44:59
有表user
user_id user_name
1 小强(或其他姓名)
现在要新增一字段,并附值,原有值不能变,形成如:
user_id user_name user_add
1 小强 中国上海

请问SQL试语句应该如何写 ?
...全文
29 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复


if object_id('[user1]') is not null drop table [user1]
create table [user1]([user_id] int,[user_name] varchar(4))
insert [user1]
select 1,'小强'

alter table [user1] add [user_add] varchar(100)
update [user1] set user_add = '中国上海' where user_id = 1
select * from [user1]

/**
user_id user_name user_add
----------- --------- ----------------------------------------------------------------------------------------------------
1 小强 中国上海

(所影响的行数为 1 行)


**/
Tomzzu 2009-07-16
  • 打赏
  • 举报
回复
光有default是不行的, 一定要加上not null, 要不原始数据是补不上的

alter table [user] add user_add varchar(40) not null default('中国上海')

yuangang1011 2009-07-16
  • 打赏
  • 举报
回复
If Exists(Select 1 From [user] where ID = @ID)
Update....
Else
Insert....
daqi2010 2009-07-16
  • 打赏
  • 举报
回复
谢谢各位大哥,还有一个小问题,
在新增字段前,如何判断该字段是否存在
--小F-- 2009-07-16
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author :fredrickhu(小F 向高手学习)
-- Date :2009-07-16 16:14:25
----------------------------------------------------------------
--> 测试数据:[user1]
if object_id('[user1]') is not null drop table [user1]
create table [user1]([user_id] int,[user_name] varchar(4))
insert [user1]
select 1,'小强'
--------------开始查询--------------------------
alter table [user1] add [user_add] varchar(50)
update [user1] set user_add='中国上海'
select * from [user1]
----------------结果----------------------------
/*user_id user_name user_add
----------- --------- --------
1 小强 中国上海

(所影响的行数为 1 行)
*/
张家可 2009-07-16
  • 打赏
  • 举报
回复

--先添加一个字段:
alter table [user] add user_add varchar(50)

--接着更新你要付值的那一行:
update [user] set user_add='中国上海' where user_name='小强'

daqi2010 2009-07-16
  • 打赏
  • 举报
回复
谢谢大家,不是每行都一样,是只有一行
--小F-- 2009-07-16
  • 打赏
  • 举报
回复
我的理解错误了
alter table [user] add user_add varchar(40) default('中国上海')
--小F-- 2009-07-16
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author :fredrickhu(小F 向高手学习)
-- Date :2009-07-16 15:49:25
----------------------------------------------------------------
--> 测试数据:[user1]
if object_id('[user1]') is not null drop table [user1]
create table [user1]([user_id] int,[user_name] varchar(4))
insert [user1]
select 1,'小强'
--------------开始查询--------------------------
select [user_id],[user_name],user_add='中国上海' from [user1]
----------------结果----------------------------
/*user_id user_name user_add
----------- --------- --------
1 小强 中国上海

(所影响的行数为 1 行)
*/
chuifengde 2009-07-16
  • 打赏
  • 举报
回复
 ALTER TABLE [Table] ADD user_add VARCHAR(20) DEFAULT('中国上海') WITH VALUES
sdhdy 2009-07-16
  • 打赏
  • 举报
回复
alter table [user] add user_add nvarchar(40) default(N'中国上海')
feixianxxx 2009-07-16
  • 打赏
  • 举报
回复
alter table [user] add user_add varchar(40) default('中国上海')
sdhdy 2009-07-16
  • 打赏
  • 举报
回复
alter table [user] add user_add varchar(40) default(N'中国上海')
zs621 2009-07-16
  • 打赏
  • 举报
回复
如果每行的值一样:
alter table tab add user_add nvarchar(20) default('中国上海')
--小F-- 2009-07-16
  • 打赏
  • 举报
回复
update [user] set user_add='中国上海'
子陌红尘 2009-07-16
  • 打赏
  • 举报
回复
alter table [user] add user_add varchar(40) default('中国上海')
go

34,590

社区成员

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

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