博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 通过syscolumns.xtype动态查找指定数据类型字段所包含的数据
阅读量:5259 次
发布时间:2019-06-14

本文共 1179 字,大约阅读时间需要 3 分钟。

表中太多列,只想查找某些比如,数据类型为varchar的字段的数据。

  思路:1、先获取列名:

select * from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='test_A')

  

  2、查找指定数据类型,xtype就是数据类型,参考如下

syscolumns表内的xtype

  查了一下,这些东西都是存于每一个数据库的syscolumns表里面得,name就是列名,xtype就是数据类型,但是这个xtype是数字的,下面是数字和数据类型对应的关系;

 xtype=34 'image' 

 xtype= 35 'text' 
 xtype=36 'uniqueidentifier' 
 xtype=48 'tinyint' 
 xtype=52 'smallint' 
 xtype=56 'int' 
 xtype=58 'smalldatetime' 
 xtype=59 'real' 
 xtype=60 'money' 
 xtype=61 'datetime' 
 xtype=62 'float' 
 xtype=98 'sql_variant' 
 xtype=99 'ntext' 
 xtype=104 'bit' 
 xtype=106 'decimal' 
 xtype=108 'numeric' 
 xtype=122 'smallmoney' 
 xtype=127 'bigint' 
 xtype=165 'varbinary' 
 xtype=167 'varchar'

 xtype=173 'binary' 

 xtype=175 'char' 
 xtype=189 'timestamp' 
 xtype=231 'nvarchar'

 xtype=239 'nchar' 

 xtype=241 'xml' 
 xtype=231 'sysname'

3、构造最终的动态SQL语句:

DECLARE @sql VARCHAR(max)DECLARE @col VARCHAR(1000)SELECT @col = STUFF((SELECT ','+name FROM syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='test_A')AND sys.syscolumns.xtype= 167 for xml path('')),1,1,'')SET @sql='select '+@colSET @sql=@sql+' from test_A'EXEC(@sql)

 

转载于:https://www.cnblogs.com/EminemJK/p/5825063.html

你可能感兴趣的文章
Django 相关
查看>>
Python(软件目录结构规范)
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
条件断点 符号断点
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
javascript之Style物
查看>>
Factory Design Pattern
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
网站产品设计
查看>>
java中静态代码块的用法 static用法详解
查看>>
Java线程面试题
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
Flask三剑客
查看>>