• 主页
  • 基础类
  • 应用实例
  • 新技术前沿

急求SQL

fyming 中南财经政法大学 侦察学  2018-12-07 11:49:36
目的:
现在有两个数据库D1和D2,现在想把D1的表T1 筛选后的数据导入D2中的T2,用动态SQL怎样写?

注意:D1和D2是动态名,也就是说,把这处理过程做成存储过程,从前台传入两个变量@D1,@D2来实现
--------------------------------------
USE @D1
INSERT INTO @D2.T2……
SELECT * FROM T1 WHERE iYear=@iYear

类似于上面的要SQL,如何改写?
--------------------------------------
急求!谢谢!!
...全文
79 点赞 收藏 2
写回复
2 条回复
吉普赛的歌 版主 2018年12月07日
IF OBJECT_ID('Proc_InsertCrossDB') IS NOT NULL 
	DROP PROC Proc_InsertCrossDB
GO
-- =============================================
-- Author:		yenange
-- Create date: 2018-12-07
-- Description:	跨库插入
-- =============================================
CREATE PROCEDURE Proc_InsertCrossDB
@d1 NVARCHAR(100),
@d2 NVARCHAR(100) 
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @sql NVARCHAR(MAX);
	SET @sql='
INSERT INTO '+@d2+'.T2
SELECT * FROM '+@d1+'.T1 
WHERE iYear=@iYear';
	PRINT @sql;
	EXEC(@sql);
END
GO
回复 点赞
二月十六 2018年12月07日
CREATE PROC dbo.Insert_Pro
@D1 NVARCHAR(100),
@D2 NVARCHAR(100)
AS
DECLARE @sql NVARCHAR(max)='INSERT INTO '+@D2+'.dbo.T2 SELECT * FROM '+@D1+'.dbo.T1'
EXEC(@sql)
GO
回复 点赞
发动态
发帖子
MS-SQL Server
创建于2007-09-28

1.4w+

社区成员

25.3w+

社区内容

MS-SQL Server相关内容讨论专区
社区公告
暂无公告