请问如何检查数据库表是否存在以及字段的类型是否正确?
解决方案 »
- 关于计算时间差的问题,请各位大虾多多赐教阿,tks……
- 如何写这个SQL
- 高手赶紧帮个忙啊。我的SQL Server开不起来了
- 怎样可以把从一个表某个字段的数据向另一个表某个字段插入不重复的数据?
- 求助一条基于Excel的sql查询语句!!
- 表中是以两个int型的字段代表年月的,怎么筛选时间范围?
- count(*)对于单张表几百万上千万级数据取总记录数好象速度有点慢,有没有更好的方法
- 求一条单表存储过程,绝对够难度
- 再問一個 :iif( instr([Param]![Com],[svr_Mast]![Com]>0,yes,No)=yes如何轉化為SQL
- SQL 语言:如果表中cardnum字段的值为空,则给它赋值
- 一个复杂的存储过程,得到答案立刻接贴(在线等)
- 求分割字段?
--邹老大的
SELECT
表名=case when a.colorder=1 then d.name else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号=a.colorder,
字段名=a.name,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) then '√' else '' end,
类型=b.name,
占用字节数=a.length,
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空=case when a.isnullable=1 then '√'else '' end,
默认值=isnull(e.text,''),
字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sysproperties g on a.id=g.id and a.colid=g.smallid
left join sysproperties f on d.id=f.id and f.smallid=0
--where d.name='要查询的表' --如果只查询指定表,加上此条件
order by a.id,a.colorder
print '存在'
else
print '不存在'
from syscolumns a,systypes b
where a.id=object_id('表名')
and a.xtype=b.xtype
and b.name in ('int','varchar')
and a.name in ('a1','a2'))
print '表名字段名字段类型均匹配'
else
print '不匹配'
判断字段select name from syscolumns where id=object_id('aa')类型的参考1楼