急求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,如何改写?
--------------------------------------
急求!谢谢!!
...全文
133 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧