2013-04-07 3 views
0

SQL Server 2012에서 내 "TradeDate"열의 값을 "MARKET_DAY"열의 값과 같게 설정하려고합니다. 여기에 내 현재 코드 :다른 테이블을 기반으로 SQL Server 업데이트가 실패합니까?

나는이 프로그램을 실행할 때
USE Sales 
GO 
update dbo.try1 
SET dbo.try1.TradeDate = dbo.yesterday.MARKET_DAY 
FROM dbo.try1, dbo.yesterday 

그러나, 내가 얻을 :

(0 row(s) affected) 

나는 이유를 알지 못한다. 어떤 도움이라도 대단히 감사합니다. (나는 T-SQL의 멍청이이다. 부드럽게 대답해라.)

+0

조건은 무엇인가 :

여기에 위의 쿼리를 실행 한 결과인가? 'dbo.try1'에 얼마나 많은 행이 있고'dbo.yesterday'에 얼마나 많은 행이 있습니까? 'dbo.yesterday'에서'dbo.try1'의 데이터를 업데이트하는 방법을 예제로 알려주십시오. – outcoldman

+0

'dbo.try1'은'TradeDate' 열에 데이터가 없습니다. 'dbo.yesterday'의'MARKET_DAY' 컬럼에서'dbo.try1'의'TradeDate' 컬럼으로 데이터를 복사하려고합니다. 이것은 나쁜 db 디자인일지도 모르지만, 당면한 과제에 필수적입니다. – user1067257

답변

3

으로 JOIN 연산자를 사용해야합니까?

INSERT INTO try1(TradeDate) 
SELECT MARKET_DAY FROM yesterday 
--You can mention your condition, if anything specific here. 
당신이 우리에게 당신의 테이블 디자인을 보여줄 수 있지만, 지금까지 내가 어떻게 됐을까 경우 정말 도움이 될 것입니다
+0

우승자가 있습니다! 완벽하게 작동합니다. 호기심에서 'UPDATE'문법이 작동하지 않는 이유를 아십니까? – user1067257

+1

UPDATE는 기존 행을 "Updating"하는 데 사용됩니다. 예 : TradeDate 데이터 X가 있고 "yesterday"Y 값을 사용하여 값을 업데이트하려는 경우 UPDATE SET tradedate = marketday를 사용할 수 있습니다. 여기서 tradedate = X 및 marketday = Y – Vishy

+0

이제 알겠습니다. 말이된다. 정말 고마워! – user1067257

2

당신의 위의 질의는 어떤 결과를 가져올 것인가? 해당 TradeDate 열에 해당 MARKET_DAY 값을 업데이트하려고합니다. 이 경우 당신은 당신이 "try1"에 테이블을 "어제"에서 데이터를 삽입하려고 일반적인 column

USE Sales 
GO 
update dbo.try1 
SET dbo.try1.TradeDate = dbo.yesterday.MARKET_DAY 
FROM dbo.try1 INNER JOIN dbo.yesterday 
ON dbo.try1.columnName=dbo.yesterday.columnName 
+0

조인 구문을 사용하더라도 여전히'(영향을받는 행이 0 개) '가되었습니다 ... – user1067257

+0

어떤 열에'내부 조인 '을 지정 했습니까? – Sachin

+0

귀하의 질문은 칼럼 업데이트와 관련이 있다고 생각합니다. 만약 당신이 왜 당신의 질문에 지정하지 않은 것보다 삽입의 경우? – Sachin

1

: 당신이 그렇지 않으면 업데이트가 '원 공통점이 있어야합니다 업데이트하려고

엔티티를 제대로 작동하지!

dbo.try1 :

enter image description here

dbo.yesterday : 여기

은 예입니다

enter image description here

여기에 쿼리입니다 :

USE DBTest 
GO 
update dbo.try1 
SET dbo.try1.TradeDate = dbo.yesterday.MARKET_DAY 
FROM dbo.try1 INNER JOIN dbo.yesterday 
ON dbo.try1.id=dbo.yesterday.id 

이 경우 두 테이블의 엔티티에 공통 ID가 있으므로 해당 ID를 기반으로 업데이트 할 수있었습니다.

enter image description here

+0

그는 우리가 그것을 위해 일하기를 원합니다. –

관련 문제