0
在動態SQL語句中,一個@STU_ID值無法將數據插入到另一個表中。在這裏我需要知道在執行時失敗的是哪個@STU_ID。SQL Server中的動態SQL中的異常處理
CREATE PROC DATA_COPY
(
@SRC_TABLE VARCHAR(30),
@DEST_TABLE VARCHAR(30)
)
AS
DECLARE @STU_ID INT
BEGIN
DECLARE STUDENT_CURSOR CURSOR FOR
SELECT DISTINCT STU_ID FROM STUDENT
OPEN STUDENT_CURSOR
FETCH NEXT FROM STUDENT_CURSOR INTO @STU_ID
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('INSERT INTO '[email protected]_TABLE+'
SELECT *
FROM '[email protected]_TABLE+'
WHERE STU_ID='[email protected]_ID)
FETCH NEXT FROM STUDENT_CURSOR INTO @STU_ID
END
CLOSE STUDENT_CURSOR
DEALLOCATE STUDENT_CURSOR
END
你能幫我怎麼做嗎?
感謝
你得到一個錯誤的上下文中捕獲數據?如果可以,你可以包括它嗎?最有可能的情況是'SELECT * FROM'+ @ SRC_TABLE +'WHERE STU_ID ='+ @ STU_ID'沒有結果。在執行插入操作之前,您應該檢查並確保有數據。此外,您正在基於SELECT *插入到表中。當架構發生變化時,這會給你帶來麻煩。 – Gibron 2013-04-09 06:37:28
錯誤消息:消息8152,級別16,狀態14,行1 字符串或二進制數據將被截斷。 – user1990383 2013-04-09 06:40:48
我明確地更改了目標表中比源表低一列的大小,其中我的要求是在執行存儲過程時收到消息是「@ STU_ID無法將數據插入目標表」 – user1990383 2013-04-09 06:44:52