我在试图确定为什么我的存储过程无法正确运行。 问题是当我使用连接参数。完成后,我将有6或7个,每个建立在最后。 我试过每一个变化,包括=,像,%,空格,没有空格,并且不能拿出正确的语法来使这个操作。 我也做了一个'硬编码'测试,它工作正常,所以数据是正确的。 帮助!由于TSQL连接参数
下面的代码 -
ALTER PROCEDURE [dbo].[rspSCLTEST]
(@RRID as varchar(4),
@State as varchar(2),
@Sub as varchar(75))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL as varchar(4000)
SET @SQL = @State
--add the subdivision to the where statement
If @Sub = 'ALL'
SET @SQL = @SQL
ELSE
SET @SQL += ' AND (C.SubDivision = '+ @Sub + ')'
SELECT C.CRID, C.DOT, C.RR, C.Pref, C.MP, C.Division, C.SubDivision, C.City, C.Street,
C.State, C.County, C.RestrictedCounty, C.Remarks, C.SpecialInstructions, C.Route, C.ThirdAppRequired,
C.MainTrks, C.OtherTrks, C.OnSpur, C.MaxSpeed, C.SubContracted, C.FenceEncroachment, C.Lat, C.Long,
C.PropertyType, C.WarningDevice,C.Surface, C.ROWNE, C.ROWNW, C.ROWSE, C.ROWSW, C.ROWWidth, C.ExtNE,
C.ExtNW, C.ExtSE, C.ExtSW, C.TempActive, C.PCO, A.App1Date, A.App1Cut, A.App1Spray, A.App1Inspect,
A.App2Date, A.App2Cut, A.App2Spray, A.App2Inspect, A.App3Date, A.App3Cut, A.App3Spray, A.App3Inspect
FROM Crossings AS C LEFT OUTER JOIN AppData AS A ON C.CRID = A.CRID
WHERE (C.DeletedCrossing = 0) AND (C.RR = @RRID)
AND C.State = @SQL
END
您需要首先处理您的问题,发布一些代码,并且我认为您尝试连接参数,如果使用'+'运算符。 – scc 2013-02-14 18:44:24