⑴ 如何查询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适用判断表存在