- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Microsoft SQL Server里有一种computed columns列.这种列的值是通过一个表达式来计算,而表达式引用的是同一张表的其它列的值.打个比方,有一张ServiceLog表,其包含了ServicePerformed, EmployeeID, Rate, Duration等列. 虽然我们可以在一个web页面或其它什么界面里计算每笔服务的费用(也就是 比率 rate乘以时间段duration),不过我们也可以手动向ServiceLog表添加一个 AmountDue列以反映该信息.我们可以将该列创建为一个普通列,只是任何时候当Rate 或 Duration列的值发生改变时需要更新AmountDue列的值.一个比较好的办法是将AmountDue创建成一个computed column 列,其使用的表达式为 Rate * Duration. 这样,当在一个查询里引用该列时SQL Server就可以自动的计算AmountDue列的值.由于computed column列的值是由表达式决定的,所以这种列是只读的,并且不能在INSERT 或 UPDATE statements里对其赋值.然而,对使用ad-hoc SQL statements的TableAdapter来说,如果主查询里引用了computed column列,那么自动生成的INSERT 和 UPDATE statements也会自动的引用computed column列.所以,我们必须更新TableAdapter的 INSERT 和 UPDATE 查询,以及InsertCommand 和 UpdateCommand属性,以删除对任何computed column列的引用.如果在使用 ad-hoc SQL statements的TableAdapter里使用computed columns的话,我们要面临的挑战之一便是,每当完成TableAdapte设置向导时,TableAdapter的 INSERT 和 UPDATE查询都会自动的生成,又再一次的自动引用computed column列.不过如果TableAdapters使用存储过程的话,就不会出现这个问题.在本文,我们将向Northwind数据库的Suppliers表添加一个computed column列,然后相应地创建一个TableAdapter来处理该表以及该computed column列.我们将在TableAdapter里使用存储过程而不是ad-hoc SQL statements.第一步:向Suppliers表添加一个Computed Column在本文,我们将向Suppliers表添加一个名为FullContactName的computed column列,它以“ContactName (ContactTitle, CompanyName)”的格式返回contact的name, title,以及所在的公司.打开服务器资源管理器,在Suppliers表上单击右键,选“Open Table Definition”,这将会显示出表所包含的列以及列的属性,比如数据类型、是否允许为NULL值等等.要添加一个computed column列,只需在表定义里键入表的名称,接下来在Column属性窗口的Computed Column Specification部分的(Formula)文本框里输入表达式(如图1所示)。将该computed column列命名为FullContactName,并使用下面的表达式:ContactName + ( + CASE WHEN ContactTitle IS NOT NULL THEN ContactTitle + , ELSE END + CompanyName + )请注意,在SQL里可以用操作符“+” 来连接字符串。而CASE声明类似于传统编程语言里的条件语句。上面代码里的CASE 声明可以这样来理解:如果ContactTitle 不为NULL,那么输出ContactTitle值,再紧接一个逗号;如果为NULL,则无操作。关于CASE 声明的更多信息请参阅文章《The Power of SQL CASE Statements》(/webtech/102704-1.shtml/webtech/102704-1.shtml)注意:除了CASE声明外,我们还可以使用ISNULL(ContactTitle, )。语法ISNULL(checkExpression, replacementValue) returns是这样工作的,如果checkExpression 不为NULL,则对其进行返回;如果为NULL则返回replacementValue.虽然本文这2种语法都可以
您可能关注的文档
- 6菌类植物 药物植物学.ppt
- 7.4.2-深深浅浅话友谊.ppt
- 7.6 压强 复习课件A.ppt
- 7.夏夜多美.ppt
- 7.异常、故障处理(2016新).pptx
- 7.人体局解-上肢2.ppt
- 7.人教版四年级语文上册7.《蟋蟀的住宅课件》(优质课件).ppt
- 7.相互协作的人体器官.ppt
- 7.晚安课件新.ppt
- 7.第七章 思维.ppt
- 2025年甘肃省临夏回族自治州单招职业适应性测试题库及答案一套.docx
- 中国地下采矿人员运输车行业市场前景预测及投资价值评估分析报告.docx
- 中国复方龙胆碳酸氢钠片行业市场规模及投资前景预测分析报告.docx
- 2025年新疆生产建设兵团兴新职业技术学院单招职业适应性考试题库必威体育精装版.docx
- 2025年江西软件职业技术大学单招职业倾向性测试题库参考答案.docx
- 2025年贵州水利水电职业技术学院单招职业倾向性测试题库完整.docx
- 2025年山东信息职业技术学院单招综合素质考试题库完整版.docx
- 2025年合肥信息技术职业学院单招职业技能考试题库推荐.docx
- 2025年湖南化工职业技术学院单招职业适应性考试题库完美版.docx
- 2025年宁波卫生职业技术学院单招综合素质考试题库推荐.docx
最近下载
- 石油化工产学研合作与创新体系建设进展.pptx
- 心理课:生涯决策力提升-《生涯决策力提升》.pptx
- (完整)婚介登记表.doc
- 浙江省宁波市区县社区街道乡镇村名称统计.pdf
- 法雷奥供应商手册supplierqualitymanual2104rev09资料.pdf
- 2023年汕头市潮阳区卫健系统招聘医学类专业技术人员笔试真题.docx VIP
- 2024年义务教育化学课程标准2022年版(多选题)考试专项题库及答案.docx
- 海阳市各级文物保护单位一览表(2024版).docx VIP
- 2025届高考英语模拟卷(新高考Ⅰ卷)两套(word版有答案).docx
- 2025年建设美丽乡村示范村实施方案.pdf VIP
文档评论(0)