2013-11-14 11 views
-2

是否確定要始終火創建語句,而不是在SQL SERVER CE和C#檢查他們像請告訴我更好的方法:檢查表是否存在或總是火create語句

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_NAME = 'my_table_name' 

。 因爲不考慮方法,總會有一個單個查詢被觸發。不是嗎?

我正在使用trasaction來創建所有表。所以,我確信如果有一張桌子在場,那麼他們肯定都會被創造出來。

所以,如果我使用相同的事務,那麼事務將在第一次創建表語句時失敗:但是,這是不錯的性能明智嗎?

+3

你爲什麼要用C#創建你的表? – Liam

+0

您可能需要刪除表格/跳過創建,如果在創建時已經有一個具有相同名稱的表格。所以它不好 – Miller

回答

2

檢查表存在或總是火create語句

如果表中數據庫已經存在,你會得到一個異常。

您可以檢查表存在,刪除,然後創建它,像:

if OBJECT_ID('dbo.my_table_name', 'U') IS NOT NULL 
    DROP TABLE dbo.my_table_name; 
--and then 
CREATE TABLE .... 
+0

是的,我總是可以趕上例外。是的,'如果'在sql server ce中不受支持。 –

1

如果你的意思嘗試創建表,查找異常,則沒有。例外是昂貴的,如果他們沒有正確處理可以意外終止你的程序。

最好的做法是檢查表的存在。

+0

沒有想到,如果我確實抓住了exeptions,然後??? –

+1

首先檢查仍然是一種更好的做法。 –

相關問題