关于Create Table 的问题(50分)

  • 主题发起人 主题发起人 烂泥
  • 开始时间 开始时间

烂泥

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中已使用create table ...动态创建了一些表
但第二次运行程序是提示已有同名的表。
现在我需要判断是否同名的表,从而让使用者选择从新建还是退出。

如何写 判断是否有同样的表!再选择是drop table还是nothing to do .
 
use table.exist
 
我用 Sql Server 7.0
能否写的详细一些,
 

第二个方法我自己实现过
____________________________________________________

先用session.gettablenames得到库中已存在的表名,然后:
if newname not in tablenames then
//create table
else
//告诉用户表名冲突


try
//create table
except
//表名冲突处理

______________________________________________________



 
在SQL中使用
if exists XXXX 的行不行?
我看每次SQLServer自己产生的教本的时候,好像都有这样的判断。
另外,每个database都有一个sysobjects表,里面存放了这个Database
所有的对象,包括表、约束、存储过程、触发器、视图等。在这个
表中查一下就可以看到是否存在一个表了,没有必要在程序中判断。
里面的xtype指明了对象的类型,好像U是表,V为视图,PK是主关键字,
D是缺省值,P是存储过程等等。
你自己用SQL Server的EnterpriseManager打开看看就清楚了。
 

倘若是Oracle,可以使用查询语句
Select table_name from tabs where table_name='表名'
(其中tabs是一个系统表的别名)
来判断数据库中某一个表是否存在.在SqlServer中应该也有类似语句吧?

 
追命的方法好。
 
我最后用了Dick 和 airdreamer的方法差不多的办法解决了,
sqlscript生成的看起来不太舒服,可能是我具体看过SQL方面资料的饿原因。
 
多人接受答案了。
 
后退
顶部