delphi 面试题

Q: 现有MS SQL Server 数据库 UserLibs 列举出所有用户表及其字段。

A:

use UserLibs

declare @name nvarchar(60)
declare @colname nvarchar(60)
declare @id int
declare @colnames nvarchar(3000)

declare csr_UsrTable cursor for 
select name,id from sysobjects where objectproperty(id, N'IsUserTable') = 1 order by name

open csr_UsrTable

fetch next from csr_UsrTable into @name,@id

while (@@FETCH_STATUS = 0)
begin
  set @colnames = ''

  --查询该表下的所有字段
  declare csr_UsrColumn cursor for 
  select name from syscolumns where id = @id

  open csr_UsrColumn

  fetch next from csr_UsrColumn into @colname

  while (@@FETCH_STATUS = 0)
  begin
    if @colnames <> '' 
      set @colnames = @colnames + ',' + @colname
    else
      set @colnames = @colname

    fetch next from csr_UsrColumn into @colname
  end

  close csr_UsrColumn
  deallocate csr_UsrColumn

  print '表格名为【' + @name + '】下的所有字段为:' + @colnames

  fetch next from csr_UsrTable into @name,@id
end


close csr_UsrTable
deallocate csr_UsrTable


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值