存储如何向原来字段中追加数据
原来有u_friends字段,内容为uid1,uid2,
现在传入一个数据为uid3,
所以后来更新为uid1,uid2,uid3, 如果不用存储,在程序中肯定是先读出uid1,uid2,
后把uid1,uid2,uid3,更新到数据中。 我现在想用存储来完成。
我基本没看过存储
自己按自己想法写了一个没用。因为我对存储没有基本知识。 CREATE PROCEDURE addfriends
(
@fid nvarchar(50),
@uid nvarchar(50),
@oldfids nvarchar(3000) output
)
AS
select @oldfids=[u_friends] from [ac_user] where [u_id]=@uid
update [ac_user] set [u_friends] =@oldfids+@fid where [u_id]=@uid
GO
原来有u_friends字段,内容为uid1,uid2,
现在传入一个数据为uid3,
所以后来更新为uid1,uid2,uid3, 如果不用存储,在程序中肯定是先读出uid1,uid2,
后把uid1,uid2,uid3,更新到数据中。 我现在想用存储来完成。
我基本没看过存储
自己按自己想法写了一个没用。因为我对存储没有基本知识。 CREATE PROCEDURE addfriends
(
@fid nvarchar(50),
@uid nvarchar(50),
@oldfids nvarchar(3000) output
)
AS
select @oldfids=[u_friends] from [ac_user] where [u_id]=@uid
update [ac_user] set [u_friends] =@oldfids+@fid where [u_id]=@uid
GO
update T
set u_friends=u_friends+@fid
(
@fid nvarchar(50),
@uid nvarchar(50)
)
AS
update [ac_user] set [u_friends] = [u_friends] + ',' + @fid where [u_id]=@uid
GO
(
@fid nvarchar(50),
@uid nvarchar(50)
)
AS
update [ac_user] set [u_friends] =[u_friends]+@fid where [u_id]=@uid
GO改成这样了。在查询分析器中用了下。发现没反映???????
能确定uid一定是输入了一个存在的数据。
update [ac_user] set [u_friends]= @fid where [u_id]=@uid
GO
发现是更新了数据。
但是
update [ac_user] set [u_friends] =[u_friends]+@fid where [u_id]=@uid
会保持原数据。为什么?
update [ac_user] set [u_friends] = [u_friends] + ',' + @fid where [u_id]=@uid
这个可以。
update [ac_user] set [u_friends] =[u_friends]+@fid where [u_id]=@uid
这个却不行。我汗。
[u_friends]+@fid
这个不是这样写的?
不就是原来的加传进去的吗?
你调用存储过程这样啊
exec addfriends('uid3',你要改变的id)你是因为传进去uid1,uid2,uid3,所以才发现你说的结果吧?
我在程序中。
fid += "/*/";
/*/的问题。晕死。
这个也可以啊。