2016-04-01 20 views
2
Hata mesajı anlamak mümkün ilk kez eklenen Çıktı çalışıyorum

değil yaparken.sokulan çıkışını nasıl kullanılacağını * tablo değişkeni Güncelleme

Insert Error: Column name or number of supplied values does not match table definition.

Hedef: Ben büyük iddia masası var birçok hesapla. Bir değeri birkaç hesapta güncellemek ve güncellemeleri görüntülemek istiyorum.

SO, ben Sen alan adları ile * değiştirmeniz gerekiyor */

DECLARE @TEMP_tbl TABLE(
SORIGCREDITORREFNO VARCHAR(30), 
BCLAIMONHOLD INT) 

INSERT INTO @TEMP_tbl (SORIGCREDITORREFNO,BCLAIMONHOLD) 
VALUES ('1234',0) 

-- writing my update statement 

DECLARE @MYVAR TABLE (SORIGCREDITORREFNO VARCHAR(30),BCLAIMONHOLD INT) 

UPDATE CLAIM 
SET BCLAIMONHOLD = 1 
OUTPUT INSERTED.* INTO @MYVAR 
WHERE SORIGCREDITORREFNO IN (SELECT SORIGCREDITORREFNO FROM @TEMP_tbl) 

SELECT * FROM @MYVAR 
-- want to look at my updates 

Msg 213, Level 16, State 1, Line 16 Insert Error: Column name or number of supplied values does not match table definition.

cevap

1

güncelleştirmek istediğiniz hesabı olan bir @TEMP_tbl oluşturmak

UPDATE CLAIM 
SET BCLAIMONHOLD = 1 
OUTPUT INSERTED.SORIGCREDITORREFNO , INSERTED.BCLAIMONHOLD INTO @MYVAR 
WHERE SORIGCREDITORREFNO IN (SELECT SORIGCREDITORREFNO FROM @TEMP_tbl) 

belirttiğiniz *, @MYVAR değişkeni

'daki alanlarla eşleşmeyen CLAIM tablosundaki tüm alanlar anlamına gelir