線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1371
推到 Plurk!
推到 Facebook!

請問如何在程式中判別某個資料表是否已存在?

答題得分者是:Mickey
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-16 19:11:09 IP:163.13.xxx.xxx 未訂閱
各位先進大家好: 我使用的資料庫系統是 SQL Server 2000 程式是 Delphi 6 ,我用 ADO 物件下 Create table 時,若是資料庫中已有同名的資料表存在,會 出現錯誤訊息;原本想下類似 if exist table XXX 的語法,卻發現在 SQL 語法中,IF EXIST 是用來查詢資料表中的資料是否存在,而不是查 詢資料表本身是否存在。請大家為我解惑,或是告訴我要到那裡查得到相 關的用法,謝謝。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-16 20:04:19 IP:218.32.xxx.xxx 未訂閱
SQL Server 2000 的 Table/ Stored Procedure...清單, 會存在 sysobjects 的系統檔案中, 所以可以下, 類似 if exists (select name from sysobjects where name='[TableName]') drop table [TableName] go create table [TableName].... 檢查 Table 是否存在, 另外, 也可以用 MSSQL 內建的 "Object_id" (我此時手邊沒有 MSSQL 相關文件, 你可以查查) function 看回傳值是否為 null 加以判斷.
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-16 20:38:37 IP:163.13.xxx.xxx 未訂閱
謝謝 Mickey 版主,我已試過可以 work 了,感激!
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-16 20:47:54 IP:163.13.xxx.xxx 未訂閱
對了,把可以 work 的程式碼貼出來,讓大家分享 commandStr := 'if exists (select name from sysobjects where name=''tempstart'') drop table tempstart '; commandStr := commandStr 'Select * into tempstart from start '; ADOcommand1.CommandText := commandStr ; ADOcommand1.Execute;
系統時間:2024-05-19 23:48:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!