处理SQLServer表的数据插入到错误列中计算机等级考试
文章作者 100test 发表时间 2009:06:17 19:05:19
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
计算机等级考试四级应用题解析汇总
2009年下半年全国计算机三级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机三级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库。
为了描述这个问题,我将创建一个简单的表,并且插入两个带有如下显示的相同数据类型的列。
CREATE TABLE SwapData(id int,value1 varchar(50),value2 varchar(50))
GO
现在这个表已经创建了,接下来我们在这个表中插入一些值。在这里,我使用一个UNION ALL语句,因此我就可以做一次INSERT,但是这也可以通过执行几个插入语句来完成。
INSERT INTO Swapdata
SELECT 1,10,100
UNION ALL
SELECT 2,20,200
UNION ALL
SELECT 3,30,300
UNION ALL
SELECT 4,40,400
UNION ALL
SELECT 5,50,500
UNION ALL
SELECT 6,60,600
UNION ALL
SELECT 7,70,700
UNION ALL
SELECT 8,80,800
UNION ALL
SELECT 9,90,900
UNION ALL
SELECT 10,11,110
正如下面的图像所示,这将在“value1”和“value2”中插入具有不同值的十行。
图一
现在数据已经插入,我们可以看到较大的值应该在"value1"。因此现在我们需要交换“value1” 和“value2”中的值。
这里有很多种方法来解决这个问题。正如在问题部分所讨论的,你可以删除这些数据然后再重新插入,或者你可以创建一个新的列然后把这些数据移过去,但是这里还有更简单的方法。
其中一个间的方法显示如下,那就是创建一个临时的变量,这个变量允许你更新数据和交换列值。
DECLARE @temp AS varchar(50)
UPDATE swapdata SET @temp=value2,value2=value1,value1=@temp
我们不是在这个表中创建一个临时列,而是通过声明一个临时变量来交换这两个列中的数据。上面的代码解释如下:
首先创建一个临时变量。