2016-04-21 13 views
6

Tôi không thể giải thích tại sao cột của tôi không được cập nhật.Máy chủ SQL: không thể cập nhật cột trong bảng

Tôi đã thêm một cột mới vào một bảng hiện có như sau:

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

Khi tôi chạy truy vấn dưới đây:

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

nó nói:

(1 row(s) affected) 

tôi kiểm tra bản ghi tương ứng và tôi có thể thấy cột Notes được cập nhật, nhưng cột mới vẫn hiển thị NULL và tôi không nhận được bất kỳ thông báo lỗi nào.

Tôi đang làm gì sai? Cảm ơn rất nhiều vì đã giúp đỡ.

+0

Bạn có thể chạy và kiểm tra? chọn RejectedCode, Ghi chú từ dbname..table RecordID = 12345 – Madhivanan

+0

Tôi vừa làm và nhận NULL cho mã bị từ chối và 'DEBUG' cho trường Ghi chú – user2430797

+2

có thể bạn đã kích hoạt "thay vì cập nhật" trên bảng? –

Trả lời

3

Dường như bạn đã kích hoạt instead of update trên bàn của bạn

+0

Vì lợi ích của người khác: đây là câu trả lời đúng cho vấn đề của tôi. Tôi sửa đổi kích hoạt tương ứng và bây giờ nó hoạt động tốt. Cảm ơn! – user2430797

1

Thay vì cập nhật trực tiếp thử truy vấn năng động như dưới đây,

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

Có vẻ như có một kích hoạt INSTEAD OF UPDATE trên bàn của bạn. để tìm hiểu các kích hoạt được liên kết với bảng như sau.

Trong trình khám phá đối tượng, hãy chuyển đến tên bảng của bạn và nhấp vào nút trình kích hoạt.

hoặc sử dụng mã dưới đây

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' 
Các vấn đề liên quan