试题——4、返回表Yhdang中条件为字段Bml以字符串“一局”打头的所有记录,返回字段为dh,bml(字段类型均为Varchar(8)) 
试题——1、将Hdmx200605表中所有记录插入到Hdmx表(Hdmx表已存在且与hdmx200605表结构完全一致)中,插入时仅考虑字段Dh,Hssj,Thsc,Zjjx,其他字段均按默认值即可: 
试题——2、有两个数据表T1,T2都有关键字段Yhmc(用户名称)。从T1表中查询在T2表中不存在的所有用户记录(包含所有字段) 试题——3、如果表Hthhf中不存在hf> 0的记录,就将该表删除 试题——4、表Yhdang及Hdmx200605均有字段Dh(varchar(8))及字段HfAdd(Money)要求按Dh的对应关系,更新表Yhdang表,使Yhdang表中的HfAdd等于对明细表Hdmx200605按字段 Dh分组求和后的字段Hfhj的值 
试题——5、数据库Tel_Old和数据库Tel_New都有结构完全一样表Yhdang,现要把Tel_Old的  Yhdang里的数据导入Tel_New的Yhdang,要求至少写出两种导入方法 试题——6、用一条SQL语句创建一张结构和Yhdang一样的表Yhdang_tmp,但事先并不知道表Yhdang的结构,并且新创建的Yhdang_tmp表中不能有任何数据 试题——7、阅读下面的存储过程,回答问题: 
CREATE Procedure GetColumn  
  @Table_name varchar(200) 
as 
declare @field varchar(30) 
declare @sql varchar(3000) 
declare cur cursor local read_only static scroll for select [name] from  syscolumns where [id]=(select [id] from sysobjects where [name]=@table_name ) 
open cur  
fetch first from Cur into @field  select @Sql='' 
while  @@FETCH_STATUS=0 
begin 
  select @sql=@Sql+','+@field 
print @sql 
  fetch next from Cur into @field 
end 
close cur 
DeAllocate cur 
print @sql 
print substring(@sql,2,len(@sql)-1) 
GO 
1) 请阐述黑体字部分的含义; 
2) 现有数据表T1,字段为Hth,Dh,Yhmc,Yhdz,如果在SQL 查询分析器中执行语句exec GetColumn 'T1',请写出调试消息中的内容。 

解决方案 »

  1.   

    试题——4、返回表Yhdang中条件为字段Bml以字符串“一局”打头的所有记录,返回字段为dh,bml(字段类型均为Varchar(8)) select dh,bml from Yhdang where Bml like N'一局%'试题——1、将Hdmx200605表中所有记录插入到Hdmx表(Hdmx表已存在且与hdmx200605表结构完全一致)中,插入时仅考虑字段Dh,Hssj,Thsc,Zjjx,其他字段均按默认值即可: insert into Hdmx (Dh,Hssj,Thsc,Zjjx)
    select Dh,Hssj,Thsc,Zjjx
    from Hdmx200605试题——2、有两个数据表T1,T2都有关键字段Yhmc(用户名称)。从T1表中查询在T2表中不存在的所有用户记录(包含所有字段) select * from T1 where Yhmc not in (select Yhmc from T2)试题——3、如果表Hthhf中不存在hf>  0的记录,就将该表删除 if not exists ( select * from Hthhf where hf>  0)
      drop table Hthhf试题——4、表Yhdang及Hdmx200605均有字段Dh(varchar(8))及字段HfAdd(Money)要求按Dh的对应关系,更新表 Yhdang表,使Yhdang表中的HfAdd等于对明细表Hdmx200605按字段 Dh分组求和后的字段Hfhj的值 update Yhdang set HfAdd = sum(T2.Hfhj)
    from Yhdang T1
       JOIN Hdmx200605 T2 ON T1.Dh=T2.Dh 
    GROUP BY T2.Dh 试题——5、数据库Tel_Old和数据库Tel_New都有结构完全一样表Yhdang,现要把Tel_Old的  Yhdang里的数据导入Tel_New的Yhdang,要求至少写出两种导入方法 INSERT INTO [Tel_New]..Yhdang select * from [Tel_Old]..Yhdang 2. SQL SERVER DTS
    试题——6、用一条SQL语句创建一张结构和Yhdang一样的表Yhdang_tmp,但事先并不知道表Yhdang的结构,并且新创建的Yhdang_tmp表中不能有任何数据  select * into  Yhdang_tmp from  Yhdang where 1=0
      

  2.   

    试题——4、返回表Yhdang中条件为字段Bml以字符串“一局”打头的所有记录,返回字段为dh,bml(字段类型均为Varchar(8)) 
    select dh, bml
    from Yhdang
    where Bml like '一局%'试题——1、将Hdmx200605表中所有记录插入到Hdmx表(Hdmx表已存在且与hdmx200605表结构完全一致)中,插入时仅考虑字段Dh,Hssj,Thsc,Zjjx,其他字段均按默认值即可:
    insert into Hdmx
    select Dh, Hssj, Thsc, Zjjx
    from Hdmx200605试题——2、有两个数据表T1,T2都有关键字段Yhmc(用户名称)。从T1表中查询在T2表中不存在的所有用户记录(包含所有字段)
    select *
    from T1
    where not exists (select 1 from T2 where T2.Yhmc=T1.Yhmc)试题——3、如果表Hthhf中不存在hf>0的记录,就将该表删除 
    if not exists (select 1 from Hthhf where hf>0)
       drop table Hthhf试题——4、表Yhdang及Hdmx200605均有字段Dh(varchar(8))及字段HfAdd(Money)要求按Dh的对应关系,更新表 Yhdang表,使Yhdang表中的HfAdd等于对明细表Hdmx200605按字段 Dh分组求和后的字段Hfhj的值 
    update Yhdang set
       HfAdd = b.Hfhj
    from Yhdang a
    join (select Dh, Hfhj=sum(Hfhj) from Hdmx200605 group by Dh) b on a.Dh=b.Dh
      

  3.   

    试题——7、阅读下面的存储过程,回答问题:  
    CREATE Procedure GetColumn   
      @Table_name varchar(200)  
    as  
    declare @field varchar(30)  
    declare @sql varchar(3000)  
    declare cur cursor local read_only static scroll for select [name] from  syscolumns where [id]=(select [id] from sysobjects where [name]=@table_name )  
    open cur   
    fetch first from Cur into @field   select @Sql=''  
    while  @@FETCH_STATUS=0  
    begin  
      select @sql=@Sql+','+@field  
    print @sql  
      fetch next from Cur into @field  
    end  
    close cur  
    DeAllocate cur  
    print @sql  
    print substring(@sql,2,len(@sql)-1)  
    GO  
    1) 请阐述黑体字部分的含义;  么看到黑体字2) 现有数据表T1,字段为Hth,Dh,Yhmc,Yhdz,如果在SQL 查询分析器中执行语句exec GetColumn 'T1',请写出调试消息中的内容。select Hth,Dh,Yhmc,Yhdz
              elect Hth,Dh,Yhmc,Yhdz
              
      

  4.   

    2) 现有数据表T1,字段为Hth,Dh,Yhmc,Yhdz,如果在SQL 查询分析器中执行语句exec GetColumn 'T1',请写出调试消息中的内容。================================
    加字串,應該是,Dh
    ,Dh,Hth
    ,Dh,Hth,Yhdz
    ,Dh,Hth,Yhdz,Yhmc   --以上4條是while的print @sql結果
    ,Dh,Hth,Yhdz,Yhmc
    Dh,Hth,Yhdz,Yhmc
      

  5.   

    SELECT dh,bml FROM Yhdang WHERE Bml LIKE '一局%'
    SELECT dh,bml FROM Yhdang WHERE CHARINDEX('一局',Bml)=0
    ...
    INSERT Hdmx(dh,hssj,thsc,zjjx) SELECT dh,hssj,thsc,zjjx FROM hdmx200605SELECT a.* FROM t1 a WHERE NOT EXISTS(SELECT 1 FROM t2 WHERE yhmc=a.yhmc)
    SELECT a.* FROM t1 WHERE 1>(SELECT COUNT(*) FROM t2 WHERE yhmc=a.yhmc)
    SELECT a.* FROM t1 WHERE yhmc NOT IN(SELECT yhmc FROM t2)
    SELECT a.* FROM t1 a LEFT JOIN t2 b ON a.yhmc=b.yhmc WHERE b.yhmc IS NULL
    ...IF object_id('hthff') IS NOT NULL
    BEGIN
    IF NOT EXISTS(SELECT 1 FROM hthhf WHERE hf>0)
    DROP TABLE hthhf
    END
    ..UPDATE a SET HfAdd = sHfhj
    FROM Yhdang a
    INNER JOIN
    (SELECT dh,SUM(hfhj) sHfhj FROM hdmx200605 GROUP BY dh) b
    ON a.dh=b.dh
    INSERT tel_new..yhdang SELECT * /*or fields list*/ FROM tel_old..yhdang
    --openrowset
    --opendatasource...
    --openquery...SELECT * FROM yhdang_tmp FROM yhdang WHERE 1=07,存储过程不答了。
      

  6.   

    上面看错题。。下面才是最后一个答案Hth,
    Hth,Dh,
    Hth,Dh,Yhmc,
    Hth,Dh,Yhmc,Yhdz,
    Hth,Dh,Yhmc,Yhdz,
    th,Dh,Yhmc,Yhdz,
      

  7.   


    --4、
    select dh,bml from yhdang where bml like '一局%'
    --1、
    insert into hdmx(Dh,Hssj,Thsc,Zjjx) select Dh,Hssj,Thsc,Zjjx from [hdmx200605]
    --2、 
    select * from T1 a where not exists(select 1 from t2 where yhmc=a.yhmc)--3、  
    if not exists(select 1 from hthhf where hf>0)
    begin
    drop table hthhf
    end--4、
    update yhdang set hfadd=b.hfhjs from yhdang a,
    (select dh,sum(hfhj)hfhjs from [hdmx200605] group by dh) b
    where a.dh=b.dh 
    --5、  
    insert into tel_new..yhdang select * from tel_old..yhdang--6、
    select top 0 * into yhdang_tmp from yhdang
      
    --7、
    存储过程中看不到黑体字。。