2016-04-21 19 views
6

Nie mogę stwierdzić, dlaczego moja kolumna nie jest aktualizowana.Serwer SQL: nie można zaktualizować kolumny w tabeli

Dodałem nową kolumnę do istniejącej tabeli w następujący sposób:

ALTER TABLE dbname..tablename 
    ADD RejectedCode [varchar](5) NULL 

Kiedy uruchomić poniższe zapytanie:

UPDATE dbname..tablename 
SET RejectedCode = 'OTHER', 
    Notes = 'DEBUG' 
WHERE RecordID = 12345 

ona mówi:

(1 row(s) affected) 

sprawdzić odpowiedni rekord i widzę kolumnę Notes zaktualizowaną, ale nowa kolumna nadal wyświetla NULL, a ja nie uzyskać dowolny komunikat o błędzie.

Co robię źle? Wielkie dzięki za pomoc.

+0

ten można uruchomić i sprawdzić? wybierz RejectedCode, Notatki z dbname..table RecordID = 12345 – Madhivanan

+0

Po prostu otrzymałem NULL z powodu odrzuconego kodu i "DEBUG" dla pola Uwagi – user2430797

+2

może masz wyzwalacz "zamiast aktualizacji" na swoim stole? –

Odpowiedz

3

Wygląda masz spust instead of update na stole

+0

Dla dobra innych: to była poprawna odpowiedź na mój problem. Zmodyfikowałem odpowiedni spust i teraz działa dobrze. Dzięki! – user2430797

1

Zamiast próbować dynamiczne aktualizowanie bezpośrednio zapytanie jak poniżej,

EXEC('Update dbname..tablename SET RejectedCode = ''OTHER'', 
     Notes = ''DEBUG'' WHERE RecordID = 12345') 
1

wyglądać jest INSTEAD OF UPDATE spust na stole. aby znaleźć wyzwalacze powiązane z tabelą, wykonaj poniższe czynności.

W eksploratorze obiektów przejdź do nazwy tabeli i kliknij węzeł wyzwalaczy.

lub użyj poniższego kodu

SELECT 
    sysobjects.name AS trigger_name 
    ,USER_NAME(sysobjects.uid) AS trigger_owner 
    ,s.name AS table_schema 
    ,OBJECT_NAME(parent_obj) AS table_name 
    ,OBJECTPROPERTY(id, 'ExecIsUpdateTrigger') AS isupdate 
    ,OBJECTPROPERTY(id, 'ExecIsDeleteTrigger') AS isdelete 
    ,OBJECTPROPERTY(id, 'ExecIsInsertTrigger') AS isinsert 
    ,OBJECTPROPERTY(id, 'ExecIsAfterTrigger') AS isafter 
    ,OBJECTPROPERTY(id, 'ExecIsInsteadOfTrigger') AS isinsteadof 
    ,OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') AS [disabled] 
FROM sysobjects 

INNER JOIN sysusers 
    ON sysobjects.uid = sysusers.uid 

INNER JOIN sys.tables t 
    ON sysobjects.parent_obj = t.object_id 

INNER JOIN sys.schemas s 
    ON t.schema_id = s.schema_id 

WHERE sysobjects.type = 'TR' 
and s.name = 'your table name' 
Powiązane problemy