SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spIncTurn_Member_fix]
(
/* param1 = part = edu,mem,women,personal
param2 = member_id or code(dept_name?)
*/
@param1 varchar(20),
@param2 varchar(20)
)
AS
SET NOCOUNT ON
BEGIN TRANSACTION
INSERT INTO BibleHistory (id, Bible, Chapter, Verse, [Content], member_id, dept_code, verse_id, dept_name, DateWrote, name, turn, forced_write, bible_lang)
SELECT
BibleWrote.id, BibleWrote.Bible, BibleWrote.Chapter,
BibleWrote.Verse, BibleWrote.[Content],
BibleWrote.member_id, BibleWrote.dept_code,
BibleWrote.verse_id, BibleWrote.dept_name,
BibleWrote.DateWrote, BibleWrote.name, BibleWrote.turn,
BibleWrote.forced_write, BibleWrote.bible_lang
FROM
BibleWrote
INNER JOIN
Member ON BibleWrote.member_id = Member.id --AND BibleWrote.turn < Member.turn
WHERE
(BibleWrote.dept_code = @param1)
AND (Member.id = @param2)
IF @@ERROR <> 0
BEGIN
/* ?- Rollback the transaction */
ROLLBACK
RAISERROR ('Error in copying BibleWrote into BibleHistory.', 16, 1)
RETURN
END
DELETE FROM BibleWrote
FROM BibleWrote
INNER JOIN Member ON BibleWrote.member_id = Member.id --AND BibleWrote.turn < Member.turn
WHERE (BibleWrote.dept_code = @param1) AND (Member.id = @param2)
IF @@ERROR <> 0
BEGIN
/* -? Rollback the transaction */
ROLLBACK
RAISERROR ('Error in deleting BibleWrote table.', 16, 1)
RETURN
END
COMMIT
RETURN
И ниже мой запрос, который я пытаюсь запустить. По какой-то причине это не влияет на какие-либо строки. Я хорошо знаком с mysql, который я использую на работе, и просто пытаюсь понять себя с SQL Server .. и у меня нет большого контекста, почему этот запрос работает неправильно.Что не так в этом запросе для SQL Server?
EXEC [dbo].[spIncTurn_Member_fix] @param1='personal', @params2='671'
GO
Вы пробовали выполнение выбора участка вручную с параметрами, которые вы предоставили? Каковы результаты? – gmiley
yeh попробуйте выполнить запрос вручную со статическим значением параметра – Beginner
. Кроме того, рассмотрите, что ваш оператор rollback фактически сделал ваш оператор фиксации недействительным (так как не было связано с Begin Tran), что вы возвращаете? –