guy*_*h92 9 sql t-sql sql-server
我的存储过程正在尝试将记录写入另一个服务器上的数据库.声明如下:
IF @Builds > 0
BEGIN
SET @DPU = @Failures / @Builds
INSERT INTO SQL05.ManufacturingPortal.dbo.OPC.WriteRequests (ID, RegisterID, Value, RequestedDate, IsCompleted)
VALUES(@PLCID, 'F8:10' , CAST(@DPU AS NUMERIC(10,2)), GETDATE(), 0)
END
Run Code Online (Sandbox Code Playgroud)
但是当我尝试创建存储过程时 - 我收到以下错误:
The object name 'SQL05.ManufacturingPortal.dbo.OPC.WriteRequests' contains more than
the maximum number of prefixes. The maximum is 3.
Run Code Online (Sandbox Code Playgroud)
我已经尝试创建Server.DB.DBO的别名来缩短前缀的数量但是似乎实现了这个错误.
我无法在目标数据库上更改我的数据库架构.关于如何解决这个问题的任何建议?
谢了,兄弟们
Arv*_*rvo 10
正确的四部分表名是server.database.schema.tablename - 那里有一些多余的部分.
看起来表名是OPC.WriteRequests?如果是,那么你必须使用括号:SQL05.ManufacturingPortal.dbo.[OPC.WriteRequests]
但也许你只是有一些名字不正确?
我使用的一切都是正确的,但问题仍然存在。我的命令如下
select * into server.database.schema.table from table2
Run Code Online (Sandbox Code Playgroud)
我通过首先在服务器中创建表来解决它,然后使用插入到没有问题的语句执行
Create Table...........
Insert into server.database.schema.table select * from table2
Run Code Online (Sandbox Code Playgroud)
谢谢,斯里
就我而言,它实际上希望在 INTO 表所在的服务器上运行:
SELECT *
INTO [database].[schema].[table]
FROM [server].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)