SELECT a.*
FROM OPENROWSET('sqlOLEDB','192.168.1.107\sql2k5';'sa';'123',
'SELECT * FROM data_center.bycommon.LogicEquipment') AS a
FROM OPENROWSET('sqlOLEDB','192.168.1.107\sql2k5';'sa';'123',
'SELECT * FROM data_center.bycommon.LogicEquipment') AS a
这段sql语句的意思是按照ole的方式访问sqlserver数据库,服务期为192.168.1.107\sql2k5,用户名为sa,密码为123。查询的数据是data_center数据库下的bycommon.LogicEquipment表.
insert into 另一个数据库服务器某张同样结构的表 SELECT a.*
FROM OPENROWSET('sqlOLEDB',
'SELECT * FROM data_center.bycommon.LogicEquipment') AS a
FROM OPENROWSET('sqlOLEDB',
'SELECT * FROM data_center.bycommon.LogicEquipment') AS a
下来我们看看如何使用row_Number。rownumber实现对行的自动编号
SELECT * FROM(SELECT *,ROW_NUMBER() OVER (ORDER BY plantId DESC) AS RowNumber FROM [bycommon].LogicEquipment) as a
大家看到了,最后一列rowNumber很有规律排列。这个对于一个想得到某个确定行数据的人来说实在是太惊喜了。比如现在我要取第8条数据,那么:
SELECT * FROM(SELECT *,ROW_NUMBER() OVER (ORDER BY plantId DESC) AS RowNumber FROM [bycommon].LogicEquipment) as a where a.rowNumber=8,ok轻松搞定。
还有大家有没有发现有了这个东西就可以进行对数据进行逐行处理了,类似于游标,写个sql看看。
SELECT * into #temp FROM(SELECT *,ROW_NUMBER() OVER (ORDER BY plantId DESC) AS RowNumber FROM [bycommon].LogicEquipment) as a
declare @i int,@maxId int,@id int
select @maxId=max(rowNumber) from #temp
set @i=1
while @i<=@maxId
begin
select @id=id from #temp where rowNumber=@i
update bycommon.logicEquipment set companyId=companyId*2 where id=@id
set @i=@i+1end
select @maxId=max(rowNumber) from #temp
set @i=1
while @i<=@maxId
begin
select @id=id from #temp where rowNumber=@i
update bycommon.logicEquipment set companyId=companyId*2 where id=@id
set @i=@i+1end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。