0
我做了一個查詢來填充我的表並將其轉換爲存儲過程。查詢結果與存儲過程中的查詢不同
CREATE PROCEDURE [dbo].[sp_getSAPCMTX]
@sSDate varchar(10),
@sEDate varchar(10),
@sBranch varchar(4000)
AS
DELETE FROM SAPCMTX
WHERE DocDate BETWEEN @sSDate AND @sEDate AND
StoreCode IN (SELECT Item FROM dbo.SplitStrings(@sBranch , ','))
INSERT INTO SAPCMTX
SELECT * FROM Table T0
WHERE T0.DocDate BETWEEN @sSDate AND @sEDate AND T0.DataSource<>'O' AND
T1.TreeType<>'I' AND T0.DocType = 'I' AND
StoreCode IN COLLATE DATABASE_DEFAULT IN (SELECT Item FROM
dbo.SplitStrings(@sBranch , ','))
GO
要運行它我用這個命令
EXEC [dbo].[sp_getSAPCMTX]
@sSDate = '3/8/2016',
@sEDate = '3/8/2016',
@sBranch = '002'
它返回33行,但,當我嘗試作爲TSQL單獨運行它返回34行。
DECLARE @sSDate varchar(10)
DECLARE @sEDate varchar(10)
DECLARE @sBranch varchar(4000)
SET @sSDate = '3/8/2016'
SET @sEDate = '3/8/2016'
SET @sBranch = '002'
DELETE FROM SAPCMTX
WHERE DocDate BETWEEN @sSDate AND @sEDate AND
StoreCode IN (SELECT Item FROM dbo.SplitStrings(@sBranch , ','))
INSERT INTO SAPCMTX
SELECT * FROM Table T0
WHERE T0.DocDate BETWEEN @sSDate AND @sEDate AND T0.DataSource<>'O' AND
T1.TreeType<>'I' AND T0.DocType = 'I' AND
StoreCode IN COLLATE DATABASE_DEFAULT IN (SELECT Item FROM
dbo.SplitStrings(@sBranch , ','))
GO
任何想法爲什麼結果有差異,考慮到它基本上是相同的查詢?
好吧 - 看看你回來的額外的行 - 然後你可以更容易地調試爲什麼和什麼。 –