TrackingData 테이블은 Tracking이라는 데이터베이스 안에 있습니다. 저장 프로시 저는 동일한 데이터베이스 내에서 실행됩니다. 쿼리를 사용하여 데이터를 다시 가져 오지만 SP는 사용하지 않습니다.이 SQL은 저장 프로 시저로 작동하지 않지만 일반 쿼리로 잘 작동하는 이유는 무엇입니까?
SELECT *
FROM
dbo.TrackingData
LEFT OUTER JOIN SSMain.dbo.EmailCampaignTracking ON (dbo.TrackingData.emailCampaginTrackingID = SShMain.dbo.EmailCampaignTracking.emailCampaignTrackingID)
LEFT OUTER JOIN SSMain.dbo.EmailCampaigns ON (SSMain.dbo.EmailCampaignTracking.emailCampaignID = SSMain.dbo.EmailCampaigns.emailCampaignID)
LEFT OUTER JOIN SpinStitchMain.dbo.EmailListAddresses ON (SSMain.dbo.EmailCampaignTracking.emailAddressID = SSMain.dbo.EmailListAddresses.emailAddressID)
WHERE
dbo.TrackingData.lattitude = 33.8322 AND
dbo.TrackingData.longitude = -78.6491 and
dbo.TrackingData.projectID = 131
CREATE PROCEDURE dbo.sel_Track_HitsByLatLong(
@latitude decimal(18,15),
@longitude decimal(18,15),
@projectID int
)
AS
BEGIN
SELECT *
FROM
dbo.TrackingData
LEFT OUTER JOIN SSMain.dbo.EmailCampaignTracking ON (dbo.TrackingData.emailCampaginTrackingID = SSMain.dbo.EmailCampaignTracking.emailCampaignTrackingID)
LEFT OUTER JOIN SSMain.dbo.EmailCampaigns ON (SSMain.dbo.EmailCampaignTracking.emailCampaignID = SSMain.dbo.EmailCampaigns.emailCampaignID)
LEFT OUTER JOIN SSMain.dbo.EmailListAddresses ON (SSMain.dbo.EmailCampaignTracking.emailAddressID = SSMain.dbo.EmailListAddresses.emailAddressID)
WHERE
dbo.TrackingData.lattitude = @latitude AND
dbo.TrackingData.longitude = @longitude and
dbo.TrackingData.projectID = @projectID
END
편집 :이 변경 사항을 확인 dnot을 befor 일어난 적이있다 33.832200000000000
:
이 밝혀 숫자가 점점 제로는 이들의 끝에 추가. 의사 표시가 실행되면 추가됩니다.
십진수 대신 NUMERIC을 사용해 보았습니까? –
SP에 전화하는 방법의 예를 제공 할 수 있습니까? – Moose
D, 제 데이터에 0이 추가되었습니다. 이것은 십진수에서 15 자리 정밀도를 사용하기 때문입니다. 적어도 SQL Server 2005에서는 문제가되지 않습니다. 해결책을 찾았습니까? – Moose