【OPENROWSET 使用实例】
/*******************************************************************
Author:js_szy
Date:2010-11-18
Version:
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
********************************************************************
192.168.0.1
192.168.0.2
192.168.0.3
3台服务器,每天根据日期动态生成一个表
现在需要每天把数据插入到3号服务器中
********************************************************************/
CREATE PROC pp
AS
DECLARE @sql VARCHAR(4000)
DECLARE @s1 VARCHAR(100),
@s2 VARCHAR(100),
@s3 VARCHAR(100)
SET @s1='a'+CONVERT(VARCHAR(8),getdate(),112) -- 192.168.0.1 中今天生成的表名
SET @s2='q'+CONVERT(VARCHAR(8),getdate(),112) -- 192.168.0.2 中今天生成的表名
SET @s3='a'+CONVERT(VARCHAR(8),getdate()+1,112) -- 192.168.0.3 中今天生成的表名
IF object_id(@s3)is null
BEGIN
SET @sql='create table '+@s3+'(南桥煤量int,北桥煤量int,date datetime)'
EXEC(@sql)
END
-- 判断192.168.0.1 的表存在
IF exists (SELECT 1 FROM OPENROWSET( 'SQLOLEDB', '192.168.0.1'; 'sa';'' , dongning.dbo.sysobjects) where name=@s1)
BEGIN
SET @sql='insert '+@s3+ ' select * FROM OPENROWSET( ''SQLOLEDB'', ''192.168.0.1''; ''sa'';'''' , ''select 南桥煤量,北桥煤量FROM dongning.dbo.'+@s1+''')'
EXEC(@sql)
END
-- 判断192.168.0.2 的表存在
IF exists (SELECT 1 FROM OPENROWSET( 'SQLOLEDB', '192.168.0.2'; 'sa';'' , ndongning.dbo.sysobjects) where name=@s2)
BEGIN
SET @sql='insert '+@s3+ ' select * FROM OPENROWSET( ''SQLOLEDB'', ''192.168.0.2''; ''sa'';'''' , ''select 南桥煤量,北桥煤量FROM ndongning.dbo.'+@s2+''')'
EXEC(@sql)
END
go