當前位置:首頁 » 編程語言 » sql是否有一張表
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql是否有一張表

發布時間: 2022-07-01 10:16:05

⑴ 如何查詢sqlserver中某個表是否存在

在sql資料庫中有一個sysobjects表,記錄當前所有的表名可以用Query(SQL語句)SELECT * FROM sysobjectsWHERE '表名' = Name或用Table打開,用Locate找一下

⑵ 在VB中 如何 判斷SQL中是否有該表

參考
http://topic.csdn.net/t/20030604/17/1876180.html

rs.CursorLocation = adUseClient
就是代表使用客戶端游標,和他對應的是 rs.CursorLocation = adUseServer 服務端游標
---------------------------
看一下,比我解釋的清楚
CursorLocation 屬性
設置或返回遊標服務的位置。
設置和返回值
設置或返回可設置為以下某個常量的長整型值。
常量 說明
adUseNone 沒有使用游標服務。(該常量已過時並且只為了向後兼容才出現)。
adUseClient 使用由本地游標庫提供的客戶端游標。本地游標服務通常允許使用的許多功能可能是驅動程序提供的游標無法使用的,因此使用該設置對於那些將要啟用的功能是有好處的。AdUseClient 具有向後兼容性,也支持同義的 adUseClientBatch。
adUseServer 默認值。使用數據提供者的或驅動程序提供的游標。這些游標有時非常靈活,對於其他用戶對數據源所作的更改具有額外的敏感性。但是,Microsoft Client Cursor Provider(如已斷開關聯的記錄集)的某些功能無法由伺服器端游標模擬,通過該設置將無法使用這些功能。
說明
該屬性允許在可用於提供者的各種游標庫中進行選擇。通常,可以選擇使用客戶端游標庫或位於伺服器上的某個游標庫。
該屬性設置僅對屬性已經設置後才建立的連接有影響。更改 CursorLocation 屬性不會影響現有的連接。
對於 Connection 或關閉的 Recordset 該屬性為讀/寫,而對打開的 Recordset 該屬性為只讀。
由 Execute 方法返回的游標繼承該設置。Recordset 將自動從與之關聯的連接中繼承該設置。
遠程數據服務用法 當用於客戶端 (ADOR) Recordset 或 Connection 對象時,只能將 CursorLocation 屬性設置為 adUseClient。
------------------------
CursorType
Recordset對象Open方法的CursorType參數表示將以什麼樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
--------------------------------------------------------------
常數 常數值 說明
--------------------------------------------------------------
adOpenForwardOnly 0 預設值,啟動一個只能向前移動的游標(Forward Only)。
adOpenKeyset 1 啟動一個Keyset類型的游標。
adOpenDynamic 2 啟動一個Dynamic類型的游標。
adOpenStatic 3 啟動一個Static類型的游標。
--------------------------------------------------------------
以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。
--------------------------------------------------------------
Recordset屬性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
--------------------------------------------------------------
AbsolutePage 不支持 不支持 可讀寫 可讀寫
AbsolutePosition 不支持 不支持 可讀寫 可讀寫
ActiveConnection 可讀寫 可讀寫 可讀寫 可讀寫
BOF 只讀 只讀 只讀 只讀
Bookmark 不支持 不支持 可讀寫 可讀寫
CacheSize 可讀寫 可讀寫 可讀寫 可讀寫
CursorLocation 可讀寫 可讀寫 可讀寫 可讀寫
CursorType 可讀寫 可讀寫 可讀寫 可讀寫
EditMode 只讀 只讀 只讀
只讀
EOF 只讀 只讀 只讀
只讀
Filter 可讀寫 可讀寫 可讀寫 可讀寫
LockType 可讀寫 可讀寫 可讀寫 可讀寫
MarshalOptions 可讀寫 可讀寫 可讀寫 可讀寫
MaxRecords 可讀寫 可讀寫 可讀寫 可讀寫
PageCount 不支持 不支持 只讀 只讀
PageSize 可讀寫 可讀寫 可讀寫 可讀寫
RecordCount 不支持 不支持 只讀 只讀
Source 可讀寫 可讀寫 可讀寫 可讀寫
State 只讀 只讀 只讀 只讀
Status 只讀 只讀 只讀 只讀
AddNew 支持 支持 支持 支持
CancelBatch 支持 支持 支持 支持
CancelUpdate 支持 支持 支持 支持
Clone 不支持 不支持
Close 支持 支持 支持 支持
Delete 支持 支持 支持 支持
GetRows 支持 支持 支持 支持
Move 不支持 支持 支持 支持
MoveFirst 支持 支持 支持 支持
MoveLast 不支持 支持 支持 支持
MoveNext 支持 支持 支持 支持
MovePrevious 不支持 支持 支持 支持
NextRecordset 支持 支持 支持 支持
Open 支持 支持 支持 支持
Requery 支持 支持 支持 支持
Resync 不支持 不支持 支持 支持
Supports 支持 支持 支持 支持
Update 支持 支持 支持 支持
UpdateBatch 支持 支持 支持 支持
--------------------------------------------------------------
其中NextRecordset方法並不適用於Microsoft Access資料庫。

LockType
Recordset對象Open方法的LockType參數表示要採用的Lock類型,如果忽略這個參數,那麼系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
-------------------------------------------------------------
常數 常數值 說明
--------------------------------------------------------------
adLockReadOnly 1 預設值,Recordset對象以只讀方式啟動,無法運行AddNew、Update及Delete等方法
adLockPrssimistic 2 當數據源正在更新時,系統會暫時鎖住其他用戶的動作,以保持數據一致性。
adLockOptimistic 3 當數據源正在更新時,系統並不會鎖住其他用戶的動作,其他用戶可以對數據進行增、刪、改的操作。
adLockBatchOptimistic 4 當數據源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數據進行增、
刪、改的操作。

⑶ sql語句 如何創建一個表啊

創建表的SQL語句根據不同的資料庫會有所不同,常見的幾種資料庫創建方式如下:

創建一個表。表名字Persons,第一列Id_P,整數類型;第二列LASTName,字元類型;第三列FirstName,字元類型。

微軟VS SQL 2008 資料庫

(3)sql是否有一張表擴展閱讀:

結構化查詢語言(Structured Query Language)簡稱SQL,是用於訪問和處理資料庫的標準的計算機語言,同時也是資料庫腳本文件的擴展名。常用的操作:

刪除表-- drop table tabname--這是將表連同表中信息一起刪除但是日誌文件中會有記錄;

刪除資料庫 -- drop database databasename;

刪除數據記錄 -- "delete from 數據表 where 條件表達式"

⑷ 在SQL中怎麼判斷資料庫里是否存在一張表

'select * from '+tableName+' where 1=0'

⑸ vb.net如何判斷sql里是否有某個表

DECLARE@object_idint;
select@object_id=OBJECT_ID(N'你的資料庫名稱.你的表名',N'U')
if@object_idisnotNULL
begin
print'存在'
end
else
begin
print'不存在'
end


你寫成SQl 用Commamnd執行也可以,或者寫成函數,通過返回值判斷也可以

⑹ SQL求助:想創建一個表,但在創建前先判斷是否存在。如存在就刪除它,不存在就創建。

1、創建對象時,如果沒有指定Schema,就會掛在默認的Schema dbo下面。

⑺ SQL中,如何查詢存在一個表而不在另一個表中的數據記錄

首先,在SQL中(以SQL Server為例),查詢存在一個表而不在另一個表中的數據記錄的方法有很多,介紹其中4種:

1、方法一(僅適用單個欄位):使用 not in ,比較容易理解,缺點是效率低

如:select A.ID from A where A.ID not in (select ID from B);

2、方法二(適用多個欄位匹配):使用 left join...on... , "B.ID isnull" 表示左連接之後在B.ID 欄位為 null的記錄。

如:select A.ID from A left join B on A.ID=B.ID where B.ID is null ;

3、方法三(適用多個欄位匹配)

如:select * from B where (select count(1) as num from A where A.ID = B.ID) = 0;

4、方法四(適用多個欄位匹配)

如:select * from A where not exists(select 1 from B where A.ID=B.ID)

接著,我們來分析你的SQL語句為什麼返回數據不準確的原因。

從你的SQL基礎語句來看,你使用了方法一和方法四這兩種,兩種語法本身都是正確的,但是卻沒有達到預期的效果,初步分析,問題可能出在gsdj和swdj這兩張表的qymc欄位的判斷比較上。

舉個例子:'企業名稱'和'企業名稱 '這兩個字元串看似相同,實際卻並不相同,因為第二個「企業名稱 」的後面跟了一個空格字元。就因為這個空格字元導致這個"'企業名稱'='企業名稱 '"等式不成立。

考慮到你qymc這個欄位的類型是字元型,建議你在原有sql基礎上做一個微調如下:

select * from gsdj gs where not exists (select * from swdj sw where rtrim(ltrim(sw.qymc)))=rtrim(ltrim(gs.qymc)));

其中Ltrim()可以去除左側空格,rtrim()可以去除右側的空格,也就是說我們是對去除空格後的企業名稱進行比較,排除了空格的干擾。

(7)sql是否有一張表擴展閱讀:

在SQL中,對於字元型文本數據,經常需要用到去空格的操作,對ORACLE數據來說可以通過TRIM()函數來簡單實現,而SQL SERVER中並沒有TRIM()函數,只有LTRIM()和RTRIM()兩個函數。

SQL 中使用ltrim()去除左邊空格,rtrim()去除右邊空格,沒有同時去除左右空格的函數,要去除所有空格可以用replace(字元串,' ',''),將字元串里的空格替換為空。

例:去除空格函數

declare @temp char(50)

set @temp = ' hello sql '

print ltrim(@temp) --去除左邊空格

print rtrim(@temp) --去除右邊空格

print replace(@temp,' ','')--去除字元串里所有空格

print @temp

>> 輸出結果
hello sql

hello sql

hellosql

hello sql

⑻ sql 判斷一個表是否存在

用戶表在當前資料庫的系統表中,可使用以下語句進行查找:
select Name,ID from sysobjects where xtype='U'

若是將xtype='U'換成xtype='V'就可以查出來所有視圖
xtype參數大概有以下種類:
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束
L = 日誌
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程

⑼ 如何用一個SQL語句來判斷一個表是否存在

執行一條計算查詢結果語句,返回查詢結果(object)。 /// /// 計算查詢結果語句 /// 查詢結果(object) public static object GetSingle(string SQLString) { using (SqlConnection connection = new SqlConnection(connectionString

⑽ 用SQL語句判斷數據表是否存在

Select Count(*) AS Qty FROM MSysObjects Where ((MSysObjects.Name) Like '表名'); --ACCESS適用判斷表存在