求教很弱质的SQL Server问题:快来拿分!!!(50分)

  • 主题发起人 主题发起人 wxb761014
  • 开始时间 开始时间
W

wxb761014

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如何在数据库中查找某一表(table)是否存在?
2、如何知道此表中是否有记录存在?

 
一个很笨的方法:
当你用select * from table 时当反回错误没有这个table时是没有,当返回记录数为0
时是没有记录
 
1。定义一个session,用session.gettablenames(databasename,pattern,extensions,
systemtabels,list)
list就是库databasename中所有表(table)名,再在list中查有没有这个表
2。 方法1:if table.eof=table.bof then 表为空
方法1:if table.recordcount=0 then 表为空
 
1.if exists(select name from sysobjects where name= 'tablename')
drop table tablename
2.select count(*) from tablename

 
完了,给楼上的猫抢先了。。。
去叫只狗过来先。。。。。。。。。。。。。
 
IF EXISTS(SELECT NAME FROM SCHEMA WHERE NAME=表名 AND TYPE="U') THEN
SELECT * FROM 表名
ELSE
不存在,报告!
 
1.I think there is a mathod named"exist(s)" for a table/query
2.a recordcount property for a dataset is enough
 
表属于 SQL Server 对象,在 SysObjects 里面有记录。
其实把表 Script 一下,就可以得到这条语句。
 
你可以这样:select * from sysobjects where name=表名 ;如果有数据表示该表存在,
适用于sql server
 
To ZJ:EXISTS 是SQL Server的语法,可用在 QUERY中。
另外,用系统表 sysobjects 和 视图 SCHEMA 都可以,不过应指明查询对象的类型,
如用户表的类型='U"。而且微软不提倡直接访问系统表,提倡用视图。
 
tadoconnection可以使用GetTableNames的方法得到数据库中的所有表。
tadoquery.sql.text:='select top 1 from table';
tadoquery.open;
if tadoquery.eof 可以判断表为空。
 
都被说掉了
 
多人接受答案了。
 
后退
顶部