sql 2008中两个数据如何用存储过程插入数据

srj911 2011-12-27 08:23:21
sql 2008服务器上有两个数据库DB1,DB2,现要把DB1中表a的一条记录插入DB2中的表b中,并且把b中的id(自动增长)更新到表a中这条记录的某个字段。例如
表a
id name special bcid
1 aa bb
表b
bcid name

现要吧aa插入b中,并且把bcid更新到a表中bcid.
如何用存储过程带参数(表a中的id)实现?
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
srj911 2011-12-30
  • 打赏
  • 举报
回复
结贴了
srj911 2011-12-29
  • 打赏
  • 举报
回复
还有人要回复吗?快要结贴了
srj911 2011-12-28
  • 打赏
  • 举报
回复
SCOPE_IDENTITY ()这个能取得BCID?,因为我还有其它表也是自动增长的



  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fredrickhu 的回复:]

SQL code
create proc test
(
@id int
)
begin

insert into db2..b select bcid,name from db1..a where id=@id

end
[/Quote]

小F师傅的
srj911 2011-12-27
  • 打赏
  • 举报
回复
非常感谢,还想问一下,如果两个数据库不在同一个服务器上如何处理?
--小F-- 2011-12-27
  • 打赏
  • 举报
回复
create proc test 
(
@id int
)
begin

insert into db2..b select bcid,name from db1..a where id=@id

end
昵称被占用了 2011-12-27
  • 打赏
  • 举报
回复
OR :

USE DB1
GO

CREATE PROC PR_TEST
@ID INT
AS

DECLARE @BCID INT
INSERT DB2.DBO.B(NAME) SELECT NAME FROM A WHERE ID = @ID
SET @BCID = SCOPE_IDENTITY ()
UPDATE A
SET BCID = @BCID
WHERE ID = 1

GO

--调用
USE DB1
GO
EXEC PR_TEST 1
GO


昵称被占用了 2011-12-27
  • 打赏
  • 举报
回复
USE DB2
GO

CREATE PROC PR_TEST
@ID INT
AS

DECLARE @BCID INT
INSERT B(NAME) SELECT NAME FROM DB1.DBO.A WHERE ID = @ID
SET @BCID = SCOPE_IDENTITY ()
UPDATE DB1.DBO.A
SET BCID = @BCID
WHERE ID = 1

GO

--调用
USE DB2
GO
EXEC PR_TEST 1
GO
昵称被占用了 2011-12-27
  • 打赏
  • 举报
回复
USE DB2

DECLARE @BCID INT
INSERT B(NAME) SELECT NAME FROM DB1.DBO.A WHERE ID = 1
SET @BCID = SCOPE_IDENTITY ()
UPDATE DB1.DBO.A
SET BCID = @BCID
WHERE ID = 1

GO

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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