Tôi có bàn Tb
Làm cách nào để chỉnh sửa giá trị của INSERT trong trình kích hoạt trên SQL Server?
ID | Name | Desc
-------------------------
1 | Sample | sample desc
Tôi muốn tạo ra một kích hoạt trên INSERT đó sẽ thay đổi giá trị của chèn Desc
, ví dụ:
INSERT INTO Tb(Name, Desc) VALUES ('x', 'y')
sẽ dẫn đến
ID | Name | Desc
-------------------------
1 | Sample | sample desc
2 | x | Y edited
Trong ví dụ trên tôi nhận giá trị của việc chèn Desc
đã thay đổi thành chữ hoa và một dded edited
vào cuối.
Đó là những gì tôi cần, nhận được Desc
đang được chèn và sửa đổi.
Tôi có thể làm như thế nào?
Bạn có nên xử lý nó sau khi chèn bằng bản cập nhật không? Hoặc tạo một trigger với INSTEAD OF INSERT và sửa đổi nó mỗi khi cấu trúc bảng thay đổi?
Bạn không thể làm điều này theo một cách khác? Cá nhân tôi ghét khi tôi thấy những điều kỳ lạ xảy ra trên dữ liệu và cuối cùng tôi nhận ra rằng một kích hoạt ma đã làm một số công cụ –
Tôi sẽ sử dụng điều này để khắc phục sự cố xuất phát từ mã mà tôi không có quyền truy cập. Nó chèn 'url' của một mục, nhưng nó không loại bỏ dấu trọng âm và các ký tự đặc biệt, tôi sẽ kích hoạt làm điều đó cho tôi. – BrunoLM
Đây không phải là một khái niệm khó và nó bảo vệ tâm trí của tôi rằng Microsoft không thể cung cấp chức năng đơn giản như trong Oracle, nơi bạn có thể sửa đổi bất kỳ giá trị nào trước khi chèn bằng cách chỉnh sửa các giá trị MỚI. tức là nếu tôi muốn luôn đặt tên người dùng lên trên trước khi chèn chúng (giả sử tôi không thể làm điều đó trong mã vì một số lý do), bạn có thể có một trình kích hoạt chèn trước đó: NEW.username: = UPPER (: NEW.username). Mặc dù vậy, trong SQL Server, bạn không thể làm tương đương với các giá trị trong bảng tạm thời INSERTED, và điều đó thật sự rất tệ. – Jim