2014-02-27 3 views
0

저는 Lua 프로그래밍 언어로 프로그래밍하고 SQL과 함께 사용합니다.다중 파트 식별자를 바인딩 할 수 없습니다 (SQL SERVER)

내 프로그램에서 "users"라는 테이블에서 userid를 가져 와서 "U"라는 변수에 저장하는 select 문이 있습니다. 상위 1 사용자 ID가 U, 에 저장되어 있기 때문에 나는 우리에게 내 옆에있는 문에

"UPDATE dbo.Messages SET Status='R' , ModifyDate = GetUTCDate(), ModifiedById = U.userid WHERE MessageId ='10'" 

하지만 난 경우 인 것을 원하는, 이제

local U = conn:query{live=true,sql="select top 1 userid from users where username = 'iguana01'"} 

:

은 성명 U.userid를 사용하고 있는데, "Multipart identifier is bound be"라는 메시지가 나타납니다. 메시지 테이블의 ModifiesById 필드에있는 사용자 테이블의 데이터 인 U.userId를 사용하려고하기 때문에이 오류가 있습니다. 이 테이블들 사이의 모든 공통 컬럼은 결합을 만듭니다. 유일한 요구 사항은 Message Table의 ModifiedById 열에서 Users 테이블의 UserId 열의 상위 1 값을 사용하는 것입니다. 어떻게 해결할 수 있습니까?

답변

0

U.userid가 SQL 쿼리 엔진에 알려지지 않았기 때문에 오류가 있다고 생각합니다. U는 엔진이 액세스 할 수없는 로컬 변수입니다. 두 번째 쿼리를 변경하여 U.userid 값을 문자열에 연결하십시오.

"UPDATE dbo.Messages SET Status='R' , ModifyDate = GetUTCDate(), ModifiedById = " .. U.userid .. " WHERE MessageId ='10'" 
관련 문제