我要执行带有服务器名称的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;