一个简单的更新,执行结果却错误

netpot 2003-04-22 06:27:05
SqlServer中一数据表DBF1,有列Flag1,Flag2,类型都是nvarchar(1)
在一存储过程中如下语句:
update DBF1 set Flag2=Flag1 where ……
去实现将Flag1的标志备份到Flag2中
原表中Flag1标志为y,n等字母
执行更新后Flag2标志却变成了1,2,3
很奇怪,请指教!
...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
netpot 2003-04-22
  • 打赏
  • 举报
回复
8好意思,问题发现了,是存储过程中的参数长度写错了,应该是9位,错写成了8了,呵呵,眼花了,也没发现。
错误的存储过程如下:
CREATE PROCEDURE [dbo].[SetFlag] (@para nvarchar(8))
AS
Begin Tran
update DBF1 set FLAG1=FLAG2 where para=@para
commit tran
GO
para的长度应该为9位,改过来就好啦 :)
pengdali 2003-04-22
  • 打赏
  • 举报
回复
create table #a (a nvarchar(1),b nvarchar(1))
insert #a values ('A',null)
insert #a values ('C',null)
insert #a values ('F',null)

update #a set b=a

select * from #a

drop table #a

这段代码呢??
netpot 2003-04-22
  • 打赏
  • 举报
回复
用sql语句是没问题的
我是在存储过程中使用有时候就会出错
kenshin_z 2003-04-22
  • 打赏
  • 举报
回复
我执行是可以的阿!

34,590

社区成员

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

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