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

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

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的值。
求原因~~
...全文
72 点赞 收藏 8
写回复
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 这个也不可以,之前已经尝试过了。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告