以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQL的视图已具备可修改数据保存功能 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85230) |
-- 作者:凡夫俗子 -- 发布时间:2016/5/20 20:32:00 -- SQL的视图已具备可修改数据保存功能 SQL的视图已具备可修改数据保存功能 但FOXTABLE还是不开放这一功能
|
-- 作者:Hyphen -- 发布时间:2016/5/21 8:38:00 -- 视图修改数据保存功能仅限于单表查询,如:sel ect * from 表A,那还不如直接使用数据表 |
-- 作者:Hyphen -- 发布时间:2016/5/21 8:53:00 -- sqlserver数据库的说明文档: 以下内容为程序代码: 1 只要满足下列条件,即可通过视图修改基础基表的数据: 2 任何修改(包括 UPD ATE、INS ERT 和 DEL ETE 语句)都只能引用一个基表的列。 3 视图中被修改的列必须直接引用表列中的基础数据。 不能通过任何其他方式对这些列进行派生,如通过以下方式: 4 聚合函数:AVG、COUNT、SUM、MIN、MAX、GRO UPING、ST DEV、STD EVP、VAR 和 VARP。 5 计算。 不能从使用其他列的表达式中计算该列。 使用集合运算符 UN ION、UN ION ALL、CROSS JOIN、EX CEPT 和 INTE RSECT 形成的列将计入计算结果,且不可更新。 6 被修改的列不受 G ROUP BY、HA VING 或 DIST INCT 子句的影响。 7 TOP 在视图的 sel ect_state ment 中的任何位置都不会与 WI TH CHE CK OP TION 子句一起使用。 8 上述限制应用于视图的 FR OM 子句中的任何子查询,就像其应用于视图本身一样。 通常情况下,数据库引擎必须能够明确跟踪从视图定义到一个基表的修改。 其它数据库的限制条件可能还不完全一样,所以通过视图来修改数据其实没多大用处,仅限于一些特殊场合。对于狐表来说完全可以通过其它方式完美替代 |
-- 作者:大红袍 -- 发布时间:2016/5/22 11:31:00 -- 方法一:去编写DataColChanged事件,修改修改哪一列,对应修改对应的表;
方法二:在最后保存的时候,循环每一行修改过的行,把各列保存到对应的表去:
方法三:动态生成sql语句 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=53006&skin=0
|