Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2005查找数据库中特定数据类型的所有列_Sql Server_Sql Server 2005 - Fatal编程技术网

Sql server SQL Server 2005查找数据库中特定数据类型的所有列

Sql server SQL Server 2005查找数据库中特定数据类型的所有列,sql-server,sql-server-2005,Sql Server,Sql Server 2005,是否有方法查询系统表以查找数据库中具有特定数据类型的所有列 例如,如果我需要知道表名和数据类型=ntext 有办法吗?试试这个: SELECT a.name -- OR a.* FROM syscolumns a INNER JOIN systypes b ON a.xtype = b.xtype AND b.name = 'ntext' -- OR OTHER DATA TYPE. 试试这个 SELECT o.name AS 'Table Name', c.name AS

是否有方法查询系统表以查找数据库中具有特定数据类型的所有列

例如,如果我需要知道表名和数据类型=
ntext

有办法吗?

试试这个:

SELECT a.name -- OR a.* 
  FROM syscolumns a INNER JOIN systypes b
    ON a.xtype = b.xtype
   AND b.name = 'ntext' -- OR OTHER DATA TYPE.
试试这个

SELECT o.name AS 'Table Name', c.name AS 'Column Name' FROM sysobjects AS o
INNER JOIN syscolumns AS c ON o.name = c.object_id
INNER JOIN systypes AS t ON t.xtype = c.xtype
WHERE b.name = ' ntext' 

希望这有帮助。

我知道这个问题已经得到了回答,但我想将表名添加到结果集中,而这个查询就是这样做的

SELECT so.name, sc.name
  FROM sys.objects so
  JOIN sys.columns sc ON so.object_id = sc.object_id
  JOIN sys.types stp ON sc.user_type_id = stp.user_type_id
                    AND stp.name = 'ntext'
 WHERE so.type = 'U' -- to show only user tables
SELECT a.name, o.name AS TableName, o.type, a.id, o.object_id, o.schema_id
FROM sys.syscolumns AS a INNER JOIN sys.systypes AS b ON a.xtype = b.xtype 
AND b.name = 'char' 
AND a.length = 6 INNER JOIN
sys.objects AS o ON a.id = o.object_id
WHERE (o.type = 'u') 
AND (o.schema_id = 1)

这非常适合我需要查找的内容,只是我需要知道该列所在的表。我如何修改它以包含表名?不确定这是否是最好的方法,但这对我来说非常有效<代码>从sys.syscolumns中选择a.name、o.name作为TableName、o.type、a.id、o.object_id、o.schema_id作为内部连接sys.systypes作为b在a.xtype=b.xtype和b.name='char'和a.length=6内部连接sys.objects作为o在a.id=o.object_id上,其中(o.type='u')和(o.schema_id=1)适用于新来者@德拉基的评论可能不适合你。这是因为redudant长度约束。使用此选项:
选择a.name,o.name作为TableName,o.type,a.id,o.object\u id,o.schema\u id,a.length FROM sys.syscolumns作为内部连接sys.systypes作为b在a.xtype=b.xtype上,b.name='YOUR_DATA\u type'作为o在a.id=o.object\u id上,其中(o.type='u')和(o.schema\u id=1)
我添加了
和a。length=6
在我的帖子中有一个原因,但就是不记得为什么了:/不过,感谢您关注新来者。由于b没有别名,无法找到带有b.name的错误