使用跨服务器视图,插入记录的问题

mmcgzs 2013-05-21 11:35:24
1、在服务器 [192.168.10.123]上,创建表
CREATE TABLE [dbo].[t](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NULL
) ON [PRIMARY]


在服务器 192.168.10.108上创建视图:
Create VIEW [dbo].[v1]
AS
SELECT *
FROM .LogDB.dbo.t

GO


在服务器 192.168.10.108执行sql:
exec sp_executesql N'INSERT INTO v1(name) values(@name)
; SELECT [SearchGIMLogID] = SCOPE_IDENTITY()',
N'@name varchar(20)',@name=N'test'


返回:
SearchGIMLogID
NULL


插入记录后,获取不到刚插入的这条记录的id的值。
求原因~~
...全文
114 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2013-05-22
  • 打赏
  • 举报
回复
引用 6 楼 mmcgzs 的回复:
DBA_Huangzj 版主,你的文章里说的和我说的不是一个问题。 如果是同一个库中的视图,这种insert 语句,是能够获取插入的记录的ID的。 但是视图关联的表,如果不在一个服务器上的时候,获取不到了。 我是需要解决这个问题。
晕,下次引用一下,我都不知道你回复我了。你试试用IDENT_CURRENT这个函数看看能不能获取
张雨露 2013-05-22
  • 打赏
  • 举报
回复
帮顶 同样学习
daiyueqiang2045 2013-05-21
  • 打赏
  • 举报
回复
lz 还是现在上边的文章吧 select IDENT_CURRENT('tablename')
daiyueqiang2045 2013-05-21
  • 打赏
  • 举报
回复
select @@IDENTITY
發糞塗牆 2013-05-21
  • 打赏
  • 举报
回复
mmcgzs 2013-05-21
  • 打赏
  • 举报
回复
DBA_Huangzj 版主,你的文章里说的和我说的不是一个问题。 如果是同一个库中的视图,这种insert 语句,是能够获取插入的记录的ID的。 但是视图关联的表,如果不在一个服务器上的时候,获取不到了。 我是需要解决这个问题。
mmcgzs 2013-05-21
  • 打赏
  • 举报
回复
select @@IDENTITY 这个也不可以,之前已经尝试过了。

34,838

社区成员

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

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