在SQL Server 2000中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6倍到1.5倍范围之内,实现这个约束的正确代码是______。A.CHECK(销售价格BETWEEN单价*0.6 AND单价*1.5)B.CHECK(销售价格BETWEEN商品表.单价*0.6 AND商品表.单价*1.5)C.CREATE TRIGGER tri_Sales ON销售表FOR INSERT,UPDATE AS IF EXISTS(S

题目

在SQL Server 2000中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6倍到1.5倍范围之内,实现这个约束的正确代码是______。

A.CHECK(销售价格BETWEEN单价*0.6 AND单价*1.5)

B.CHECK(销售价格BETWEEN商品表.单价*0.6 AND商品表.单价*1.5)

C.CREATE TRIGGER tri_Sales ON销售表FOR INSERT,UPDATE AS IF EXISTS(SELECT*FROM INSERTED a JOIN商品表b ON a.商品号=b.商品号 WHERE销售价格NOT BETWEEN单价*0.6 AND单价*1.5) ROLLBACK

D.CREATE TRIGGER tri_Sales ON销售表INSTEAD OF INSERT,UPDATE AS IF EXISTS(SELECT*FROM INSERTED a JOIN商品表b ON a.商品号=b.商品号 WHERE销售价格NOT BETWEEN单价*0.6 AND单价*1.5) ROLLBACK


相似考题
更多“在SQL Server 2000中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限 ”相关问题
  • 第1题:

    设在SQL Server 2008某数据库中有销售表(商品号,销售时间,销售数量,销售价格),其中商品号的类型为char(6),销售价格的类型为int。现要定义统计指定商品销售总价的标量函数。有下列定义该标量函数的语句:Ⅰ.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns int ASBEGINReturn(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.ENDⅡ.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns int ASBEGINReturns(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.ENDⅢ.Create FUNCTION db0.GetTotal(@GoodID chat(6))Returns intBEGINReturn(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.END1V.Create FUNCTION db0.GetTotal(@GoodID char(6))Returns intReturns(SELECT SUM(销售价格)FROM销售表WHERE商品号=@GoodID.上述语句中,正确的是( )。

    A.仅I和Ⅱ

    B.仅Ⅲ和Ⅳ

    C.仅Ⅱ和Ⅳ

    D.仅I和Ⅲ


    正确答案:D
    标量函数返回一个确定类型的标量值。函数体语句定义在BEGIN-END语句内,其中包含了可以返回值的Transact-SQL命令。创建标量函数的语法如下:CREATEFUNCTION[ownername.]function_name([{@parameter_name[AS][type_schema_name.]parameter_data_type[=default]}[,…n])RETURNSreturn_data_type[AS]BEGINfunction_bodyRETURNscalar_expressionEND[;]

  • 第2题:

    查询单价最高的商品销售情况,查询结果包括商品号、商品名、销售日期、销售数量和销售金额。正确命令是

    A.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额 FROM商品JOIN销售ON商品.商品号=销售.商品号 WHERE单价=(SELECT MAX(单价)FROM商品)

    B.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额 FROM商品JOIN销售ON商品.商品号=销售.商品号 WHERE单价=MAX(单价)

    C.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额 FROM商品JOIN销售WHERE单价=(SELECT MAX(单价)FROM商品)

    D.SELECT商品.商品号,商品名,销售日期,销售数量,销售数量*单价AS销售金额 FROM商品JOIN销售WHERE单价=MAX(单价)


    正确答案:A
    解析:在指定连接字段时可以用WHERE指定连接条件,也可以用超连接关键字JOIN表示普通连接,即只有满足连接条件的记录才出现在查询结果中,但JOIN后面必须用ON子句指定连接条件,故选项C)和D)是错误的,选项B)中的WHERE语句“单价=MAX(单价)”没有指明MAX(单价)这个最大值来自哪个表,故选A)。

  • 第3题:

    在SQL Server 2008中,设有商品表(商品号,商品名,生产日期,单价,类别)。现经常需要执行下列查询: SELECT 商品号, 商品名, 单价 FROM 商品表 WHERE 类别 IN (′食品′,′家电′) ORDER BY 商品号 现需要在商品表上建立合适的索引来提高该查询的执行效率。下列建立索引的语句,最合适的是( )。

    A.CREATE INDEX Idx1 ON 商品表(类别)

    B.CREATE INDEX Idx1 ON 商品表(商品号,商品名,单价)

    C.CREATE INDEX Idx1 ON 商品表(类别,商品号,INCLUDE (商品名,单价)

    D.CREATE INDEX Idx1 ON 商品表(商品号,INCLUDE (商品名,单价,WHERE 类别 = '食品' OR 类别 = '家电'


    正确答案:D

  • 第4题:

    在SQL Server 2008中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6倍到1.5倍范围之内,实现这个约束的正确代码是( )。

    A.CHECK(销售价格BETWEEN单价*0.6 AND单价*1.5)

    B.CHECK(销售价格BETWEEN商品表.单价*0.6 AND商品表.单价*1.5)

    C.CREATE TRIGGER tri_Sales ON销售表FOR INSERT,UPDATEAs IF EXISTS(SELECT*FROM INSERTED a JOIN商品表bON a.商品号=b.商品号WHERE销售价格NOT BETWEEN单价*0.6 AND单价*1.5)ROLLBACK

    D.CREATE TRIGGER tri_ales ON销售表INSTEAD OF INSERT,UPDATE ASIF EXISTS( SELECT冰FROM INSERTED a JOIN商品表bON a.商品号=b.商品号WHERE销售价格NOT BETWEEN单价*0.6 AND单价*=1.5)ROLLBACK


    正确答案:C
    FOR指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后才执行触发器,这种触发器称为后触发型触发器。INSTEADOF指定执行触发器而不是执行引发触发器执行SQL语句,从而替代触发语句的操作,称这种触发器为前触发型触发器。

  • 第5题:

    查询商品单价在10到50之间、并且日销售数量高于20的商品名、单价、销售日期和销售数量,查询结果按单价降序。正确命令是

    A.SELECT商品名,单价,销售日期,销售数量FROM商品JOIN销售 WHERE(单价BETWEEN 10 AND 50)AND销售数量>20 ORDER BY单价DESC

    B.SELECT商品名,单价,销售日期,销售数量FROM商品JOIN销售 WHERE(单价BETWEEN 10 AND 50)AND销售数量>20 ORDER BY单价

    C.SELECT商品名,单价,销售日期,销售数量FROM商品,销售 WHERE(单价BETWEEN 10 AND 50)AND销售数量>20 ON商品.商品号=销售.商品号ORDER BY单价

    D.SELECT商品名,单价,销售日期,销售数量FROM商品,销售 WHERE(单价BETWEEN 10 AND 50)AND销售数量>20 AND商品.商品号=销售.商品号ORDER BY单价DESC


    正确答案:D
    解析:按单价降序排列应在ORDER BY后跟DESC短语,因此排除B)和C)选项。选行多表查询时,指定两表关键字进行连接时,JOIN短语必须与ON短语联合使用,故选项A)错误。