如何设置远程数据库的IDENTITY_INSERT值???

zzh54zzh 2003-09-26 05:44:05
为什么 set IDENTITY_INSERT OPENDATASOURCE('SQLOLEDB', 'Data Source=服务器';User ID=用户;Password=密码').库名.dbo.表名 ON
不行?
报错:OPENDATASOURCE 附近有语法错误。

应该怎么写???
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzh54zzh 2003-09-27
  • 打赏
  • 举报
回复
我知道了应该写成::“SET IDENTITY_INSERT 表名 ON insert into 表名(列名,……) select 列名,…… from OPENDATASOURCE('SQLOLEDB', 'Data Source=服务器';User ID=用户;Password=密码').库名.dbo.表名”
这样就可以了。
问题已解决,但我还是想知道,如何设置远程数据库的IDENTITY_INSERT值。
newmcz 2003-09-27
  • 打赏
  • 举报
回复
你要不先在你的查询分析器里调试一下你的sql语句

再看看你的权限,是不是设置没有起作用
zzh54zzh 2003-09-27
  • 打赏
  • 举报
回复
我的目的就是将在两个数据库服务器间导数据,但是在包含有一部分表有自增id,就必须设置
IDENTITY_INSERT 为on,可是就算语句写成这样还是不行:“SET IDENTITY_INSERT 表名 ON insert into 表名 select * from OPENDATASOURCE('SQLOLEDB', 'Data Source=服务器';User ID=用户;Password=密码').库名.dbo.表名”
,还是要求我设置IDENTITY_INSERT的值为ON
,这是怎么回事?
newmcz 2003-09-27
  • 打赏
  • 举报
回复
我不知道你在什么程序里这么用
我一般是在存储过程里
set IDENTITY_INSERT 表名 ON
就加一句就可以了

你要是在程序里,SQL=“set IDENTITY_INSERT 表名 ON”
然后执行 SQL
然后执行其他程序
最后
SQL=“set IDENTITY_INSERT 表名 OFF”

zzh54zzh 2003-09-27
  • 打赏
  • 举报
回复
“set IDENTITY_INSERT OPENDATASOURCE('SQLOLEDB', 'Data Source=服务器';User ID=用户;Password=密码').库名.dbo.表名 ON“
放在sql server中执行就报错!
newmcz 2003-09-27
  • 打赏
  • 举报
回复
是在程序的语句里?
zzh54zzh 2003-09-27
  • 打赏
  • 举报
回复
可是远程的不能设置,报错:OPENDATASOURCE 附近有语法错误。
newmcz 2003-09-26
  • 打赏
  • 举报
回复
如果你的数据每次都"违法"
那只能每次都先执行一下了
set IDENTITY_INSERT 表名 ON
zzh54zzh 2003-09-26
  • 打赏
  • 举报
回复
哦可以了!
用“set IDENTITY_INSERT 表名 ON”的方法IDENTITY_INSERT值会自动恢复,怎么让他一直为ON???
zzh54zzh 2003-09-26
  • 打赏
  • 举报
回复
为什么我的这个帖子不能回复?

34,575

社区成员

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

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