У меня есть некоторые проблемы с передачей @TableName внутри процедуры Near, которая будет использоваться в одном StoreLocator. Мне нужно попасть в 3 стола. Я тестировал использование QUOTENAME, но проблема всегда здесь. Может кто-то помочь мне решить эту проблему. СпасибоTableName с использованием хранимой процедуры в SQL
ALTER PROCEDURE [dbo].[GetNearbyTable]
@Table sysname,
@CenterLatitude FLOAT,
@CenterLongitude FLOAT,
@SearchDistance FLOAT,
@EarthRadius FLOAT
AS
DECLARE @CntXAxis FLOAT
DECLARE @CntYAxis FLOAT
DECLARE @CntZAxis FLOAT
SET @Table = RTRIM(@Table)
SET @CntXAxis = COS(RADIANS(@CenterLatitude)) * COS(RADIANS(@CenterLongitude))
SET @CntYAxis = COS(RADIANS(@CenterLatitude)) * SIN(RADIANS(@CenterLongitude))
SET @CntZAxis = SIN(RADIANS(@CenterLatitude))
SELECT TOP 100 *,
ProxDistance = @EarthRadius * ACOS(dbo.XAxis(glat, glon)*@CntXAxis + dbo.YAxis(glat, glon)*@CntYAxis + dbo.ZAxis(glat)*@CntZAxis)
FROM @Table
WHERE @EarthRadius * ACOS(dbo.XAxis(glat, glon)*@CntXAxis + dbo.YAxis(glat, glon)*@CntYAxis + dbo.ZAxis(glat)*@CntZAxis) <= @SearchDistance
@Table или QUOTENAME (@Table) не принимаются. Я тестировал @Table как varchar (50) и тому подобное. Я не SQLexpert.
Спасибо, фиксированный, где открытые/закрытые тормозные механизмы. – user325558