【发布时间】:2020-07-15 16:29:30
【问题描述】:
我正在使用 SQL Server 2014。我创建了一个存储过程来更新一个表,但是当我运行它时它会影响 0 行。我希望看到 501 行受到影响,因为单独运行时的实际插入语句会返回。正在更新的表是预先填充的。
我还尝试使用 500 条记录预先填充表,以查看最后 1 行是否被存储过程拉取,但它仍然影响 0 行。
Create PROCEDURE UPDATE_STAGING
(@StatementType NVARCHAR(20) = '')
AS
BEGIN
IF @StatementType = 'Insertnew'
BEGIN
INSERT INTO owner.dbo.MVR_Staging
(
policy_number,
quote_number,
request_id,
CreateTs,
mvr_response_raw_data
)
select
p.pol_num,
A.pol_number,
R.Request_ID,
R.CreateTS,
R._raw_data
from TABLE1 A with (NOLOCK)
left join TABLE2 R with (NOLOCK)
on R.Request_id = isnull(A.CACHE_REQUEST_ID, A.Request_id)
inner join TABLE3 P
on p.quote_policy_num = a.policy_number
where
A.[SOURCE] = 'MVR'
and A.CREATED_ON >= '2020-01-01'
END
IF @StatementType = 'Select'
BEGIN
SELECT *
FROM owner.dbo.MVR_Staging
END
END
运行:
exec UPDATE_STAGING insertnew
GO
【问题讨论】:
标签: select stored-procedures insert