SQL Server 2008 R2 "Cannot find the object because it does not exist or you do not have permissions"



我要执行带有服务器名称的SQL命令。下面是一些查询示例

 SELECT * FROM [SYSTEM1SQLEXPRESS].Sample1.dbo.table1 
 INSERT INTO [SYSTEM1SQLEXPRESS].Sample1.dbo.table1 values('BALA')

以上两个执行成功。在table1中,id字段是自动递增的当我执行以下命令时,它返回错误消息

 SET IDENTITY_INSERT [SYSTEM1SQLEXPRESS].Sample1.dbo.table1 ON
 INSERT INTO [SYSTEM1SQLEXPRESS].Sample1.dbo.table1 values(2,'KARTHIK')
 SET IDENTITY_INSERT [SYSTEM1SQLEXPRESS].Sample1.dbo.table1 OFF

找不到对象[SYSTEM1SQLEXPRESS]. sample1 .dbo。因为表1不存在或者您没有权限。如何解决这个问题

看起来这是链接服务器的已知问题。解决方法是:

exec [Server-SQL].MyDatabase.dbo.sp_executesql N'SET IDENTITY_INSERT 
Sample1.dbo.table1 ON;
INSERT dbo.table1 values(2,''KARTHIK'');
SET Sample1.dbo.table1 OFF;'

基本上作为RPC运行命令,而不是直接查询。

您需要在本地执行该命令。为什么不创建一个存储过程来完成这个任务,那么这个存储过程就可以说:

SET IDENTITY_INSERT dbo.Table1 ON;

你可以用

EXEC [SYSTEM1SQLEXPRESS].Sample1.dbo.MyProcedure;

相关内容

最新更新