我的存储过程正在尝试将记录写入另一台服务器上的数据库。声明如下:
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
但是,当我尝试创建存储过程时 - 出现以下错误:
The object name 'SQL05.ManufacturingPortal.dbo.OPC.WriteRequests' contains more than
the maximum number of prefixes. The maximum is 3.
我已经尝试创建Server.DB.DBO的别名以缩短前缀的数量但是似乎实现了这个错误。
我无法更改目标数据库上的数据库架构。关于如何解决这个问题的任何建议?
由于 盖
答案 0 :(得分:10)
正确的四部分表名是server.database.schema.tablename - 那里有一些多余的部分。
看起来表名是OPC.WriteRequests吗?如果是,那么您必须使用括号:SQL05.ManufacturingPortal.dbo.[OPC.WriteRequests]
但也许你只是有一些名字不正确?
答案 1 :(得分:5)
您收到错误的原因是您没有使用有效名称。您似乎引用了两个架构dbo
和OPC
。
server_name.database_name.schema_name.object_name
INSERT
引用的有效语法为{{1}}。
删除不正确的架构,然后重试。
答案 2 :(得分:3)
我正在使用一切正确的问题仍然存在。我的命令如下:
select * into server.database.schema.table from table2
我首先通过在服务器中创建表来解决它,然后使用insert into语句执行没有问题
Create Table...........
Insert into server.database.schema.table select * from table2
谢谢, SREE
答案 3 :(得分:1)
与braket" []"一起使用对于这样的名称和远程数据库服务器。 [87.247.678.80,1666] [danesfe]。[ADMIN1]。[homefarsi]
答案 4 :(得分:1)
当我尝试执行以下代码(make table)时,我遇到了类似的问题
"into SalesCube_temp.SalesCube_temp.dbo.ALL_SUPPLIER_SALES_METRICS_I"
然后我意识到我使用了不正确的语法,然后纠正为
"into SalesCube_temp.dbo.ALL_SUPPLIER_SALES_METRICS_I"
它工作,我的故事结束。但我花了将近10到15分钟的时间
希望它会对某人有所帮助。
答案 5 :(得分:1)
就我而言,它实际上是想在INTO表所在的服务器上运行:
SELECT *
INTO [database].[schema].[table]
FROM [server].[database].[schema].[table]
答案 6 :(得分:0)
请从头开始更改表格,并尝试以常规方式插入
Use ManufacturingPortal
IF @Builds > 0
BEGIN
SET @DPU = @Failures / @Builds
INSERT INTO OPC.WriteRequests (ID, RegisterID, Value, RequestedDate, IsCompleted)
VALUES(@PLCID, 'F8:10' , CAST(@DPU AS NUMERIC(10,2)), GETDATE(), 0)
END
答案 7 :(得分:0)
我有同样的问题。
问题是由于以下错误引起的:我没有通过传递textbox1.text
作为参数,而是从后面的代码中调用了textbox1
。
希望有帮助
答案 8 :(得分:0)
我的(继承)代码使用string.Format并传递服务器名称,例如
from m5.objects.AbstractMemory import *
from m5.objects.ClockDomain import *
但是在配置中,“ MuhServerName”为“ MyServer.MyDomain.com/MyInstance”,因此将其加载为
string.Format("Select * from {0}.AwesomeDB.dbo.EpicTable", WebConfigurationManager.AppSettings["MuhServerName"]);
代替
Select * from MyServer.MyDomain.com/MyInstance.AwesomeDB.dbo.EpicTable