处理SQL Server表的数据插入到错误列中
2009-06-16 10:30:26 来源:WEB开发网其中一个间的方法显示如下,那就是创建一个临时的变量,这个变量允许你更新数据和交换列值。
DECLARE @temp AS varchar(50)
UPDATE swapdata SET @temp=value2,value2=value1,value1=@temp
我们不是在这个表中创建一个临时列,而是通过声明一个临时变量来交换这两个列中的数据。上面的代码解释如下:
首先创建一个临时变量。
然后把列"value2"的数据放在@temp变量中。
接着把列"value1"的数据放在"value2"列中。
最后把@temp的值放在"value1"列中。
现在,我们来查询这个表的行。
SELECT * FROM swapdata
我们可以看到我们的表已经正确更新了。
图二
但是我发现最好的解决方法是不用任何临时变量。
只需执行下面的T-SQL,它将交换列数据。
UPDATE swapdata SET value2=value1,value1=value2
它把数据从value1迁移到value 2,同时也把value2的数据迁移到value 1。
现在,我们来查询这个表。我们可以看到数据已经交换回原来的位置。
SELECT * FROM swapdata
图三
我尝试相同的砝码来解决三个列的问题。
让我们在“swapdata”表中再添加第三个列“value3”。
ALTER TABLE swapdata ADD value3 varchar(50)
GO
UPDATE swapdata SET value3=value2+'0'
SELECT * FROM swapdata
图四
让我们如下交换这些列的值:
· "value1"获得"value3"的数据
· "value2"获得"value1"的数据
· "value3"获得"value2"的数据
我们将按照第二种解决方法来获得这个结果。
UPDATE swapdata SET value1=value3,value2=value1,value3=value2
SELECT * FROM swapdata
图五
注意,交换列的系列可以按照任何顺序来给定。只要确保这个值在每个请求输出结果中传递即可。我认为这些方法对于每个人都很有用,只要交换列值,无需为临时列和变量而烦恼。
因此下次你再遇到在一张表的多个列中交换数据,只需记住这个简单的方法。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接