Sql 对象名称包含的前缀超过了最大数目。最大值为2
与其他许多人一样,我也面临着类似的问题,错误消息是“对象名称包含的前缀超过了最大数目。最大数目为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 =
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]