多部分标识符无法绑定

时间:2019-01-11 07:58:08

标签: sql sql-server tsql sql-server-2012

我尝试运行此代码。这意味着将值插入到另一个表中。但是,它显示

  

无法绑定多个标识符AMLETL.ADD_USER.UserID。

我也引用了[],但出现了相同的错误。我也尝试在查询中使用选择。

INSERT INTO AMLDB.AML0001.GWGBENUT
    select 
     isnull(substring(AMLETL.ADD_USER.UserID,1,5),'')+isnull(substring(AMLETL.ADD_USER.EMAIL,4,5), ''),
       usersequence.NEXTVAL USERID,
   AMLETL.ADD_USER.UserID,
   AMLETL.ADD_USER.USERNAME, 
 'demo',
 to_char(getdate(),'YYYYMMDDHH24MISSFF3'),
 AMLETL.ADD_USER.USERTYPE,
 '0001',
 'en',
 '',
 '',
 '',
 'N',
 '0',
 '',
 'oZlZp6YtyqfWFzQh6Jde7g==',
 '0001',to_char(getdate(),'YYYYMMDDHH24MISSFF3'),
 '9999','','N','0','','H','','',
 AMLETL.ADD_USER.UserID,'J','','','','','0001',AMLETL.ADD_USER.branch
 from AMLETL.ADD_USER where len(AMLETL.ADD_USER.UserID)>10   
 ;

假设所有列名称,分支都是正确的。它显示了多部分标识符“ AMLETL.ADD_UserID”无法绑定

2 个答案:

答案 0 :(得分:0)

to_char不是T-SQL方法。它是Oracle操作员。使用CONVERT和别名:

INSERT INTO AMLDB.AML0001.GWGBENUT
SELECT
ISNULL(substring(u.UserID,1,5),'')
    + isnull(substring(u.EMAIL,4,5), ''),
usersequence.NEXTVAL USERID,
u.UserID,
u.USERNAME, 
 'demo',
 convert(varchar(50),GETDATE(), 112) YourColumn,
 u.USERTYPE,
 '0001',
 'en',
 '',
 '',
 '',
 'N',
 '0',
 '',
 'oZlZp6YtyqfWFzQh6Jde7g==',
 '0001',
 convert(varchar(50),GETDATE(), 112) YourColumnVARCHAR,
 '9999','','N','0','','H','','',
 u.UserID,'J','','','','','0001',
 u.branch
 from AMLETL.ADD_USER u where len(AMLETL.ADD_USER.UserID) > 10   

答案 1 :(得分:0)

我的猜测是您在表之间没有正确的联接。您需要将它们加入主键,下面我假设它是UserId,并且AMLDB.AML0001.GWGBENUT的列具有相同的名称

更改此

from AMLETL.ADD_USER where len(AMLETL.ADD_USER.UserID) > 10   

FROM AMLETL.ADD_USER au
JOIN  AMLDB.AML0001.GWGBENUT g ON au.UserID = g.UserID 
WHERE LEN(au.UserID) > 10