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
Und unten ist meine Abfrage, die ich versuche zu laufen. Es beeinflusst keine Zeilen aus irgendeinem Grund. Ich bin ziemlich vertraut mit mysql, die ich bei der Arbeit verwende, und versuche nur, mich mit SQL Server vertraut zu machen .. und ich habe nicht viele Kontexte, warum diese Abfrage nicht korrekt läuft.Was ist falsch an dieser Abfrage für SQL Server?
EXEC [dbo].[spIncTurn_Member_fix] @param1='personal', @params2='671'
GO
Haben Sie versucht, den Auswahlteil manuell mit den Parametern ausgeführt wird Ihnen zur Verfügung gestellt haben? Was sind die Ergebnisse? – gmiley
yeh versuchen Sie manuell die Abfrage mit dem statischen Parameterwert – Beginner
auszuführen. Denken Sie auch daran, dass Ihre rolback-Anweisung Ihre commit-Anweisung ungültig machen würde (da kein Begin-Tran verknüpft wäre). Was geben Sie zurück? –