Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 对象名称包含的前缀超过了最大数目。最大值为2_Sql_Sql Server - Fatal编程技术网

Sql 对象名称包含的前缀超过了最大数目。最大值为2

Sql 对象名称包含的前缀超过了最大数目。最大值为2,sql,sql-server,Sql,Sql Server,与其他许多人一样,我也面临着类似的问题,错误消息是“对象名称包含的前缀超过了最大数目。最大数目为2。” 我的设想是 CREATE PROCEDURE DBO.[USP_PROCEDURE] AS BEGIN DECLARE @LOADTIME DATETME2(7) SET @LOADTIME = (SELECT LOADTIME FROM [LINKEDSERVERNAME].[DATABASENAME].[SCHEMANAME].[TABLENAME] WHERE TABLENAME =

与其他许多人一样,我也面临着类似的问题,错误消息是“对象名称包含的前缀超过了最大数目。最大数目为2。”

我的设想是

CREATE PROCEDURE DBO.[USP_PROCEDURE]
AS
BEGIN

DECLARE @LOADTIME DATETME2(7)
SET @LOADTIME = (SELECT LOADTIME FROM [LINKEDSERVERNAME].[DATABASENAME].[SCHEMANAME].[TABLENAME] WHERE TABLENAME = 'XXXXXX')

INSERT INTO [CURRENTSERVER].[SCHEMANAME].[TABLENAME]
SELECT COLUMN1, COLUMN2,  
.... FROM TABLENAME JOIN TABLENAME1 ON ....
...
...

END
包含loadtime的表存在于链接的服务器/数据库中,它是一个重要的值,在我的过程的where子句中通过
@loadtime
进一步利用它。当我单独尝试当前服务器时,查询
SELECT LOADTIME…
工作正常。 但当我将其作为过程的一部分运行时,我的过程失败,出现上述错误。 已设置链接服务器连接,并且工作正常。我的过程需要在当前服务器上运行,这将删除在链接服务器上创建过程的范围。希望我的情景清晰明了。 欢迎所有回复。提前感谢。

线路:

INSERT INTO [CURRENTSERVER].[SCHEMANAME].[TABLENAME]
包含服务器名称,但不包含数据库名称。你应该使用

INSERT INTO [MYDATABASE].[SCHEMANAME].[TABLENAME]

甚至

INSERT INTO [SCHEMANAME].[TABLENAME]

如果要插入与存储过程相同的数据库

,则这不是一般的ANSI/ISO SQL问题。请指定您正在使用的DMB。您确定给出错误的行是这些行之一吗?另外,您的插入看起来有点可疑<代码>[CURRENTSERVER].[SCHEMANAME].[TABLENAME]应该是
[DATABASENAME].[SCHEMANAME].[TABLENAME]
对吗?数据库名称在哪里?
INSERT INTO [SCHEMANAME].[TABLENAME]