如何在 SQL Server 中查看变量(列)的属性 [关闭]

Posted

技术标签:

【中文标题】如何在 SQL Server 中查看变量(列)的属性 [关闭]【英文标题】:How can I view the property of a variable (column) in SQL Server [closed] 【发布时间】:2016-03-30 01:55:25 【问题描述】:

例如,如果一个列的值类似于200806,我想知道这个变量是日期变量还是数字变量还是字符变量,我在哪里可以看到?谢谢!

【问题讨论】:

哈???你首先说你有一个列,然后说它是一个变量。无论哪种方式,您都可以查看列或变量的数据类型以了解它是什么数据类型。 如果你指的是 ta 列数据类型,试试这个...***.com/questions/13405572/… 如果您想实际操作可能的值数据类型,那么很难做到,因为“20150702”既可以作为整数也可以作为日期......当然,它也可以是字符串......要知道表中的数据类型,您可以随时使用 SELECT * FROM Information_Schema.Columns WHERE Table_Name ='your table name' 您可以使用 sql_variant_property 函数来了解 basetype、precision、scale、totalbytes、collat​​ion 和 maxlength 等属性。它适用于变量和表格列。检查我的一篇博客文章注册它 - arulmouzhi.wordpress.com/2020/03/01/… 【参考方案1】:

如果您有 SSMS (SQL Server Management Studio),那么您可以展开 Database -> Tables -> Columns 并找到该列的类型。

否则,请使用sp_help(或)sp_helptext 以及您的表名,如下所示

sp_help your_table_name

【讨论】:

【参考方案2】:

试试这个@jenny

SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTable' AND COLUMN_NAME = 'yourColumn'

【讨论】:

【参考方案3】:

您可以通过查询INFORMATION_SCHEMA.COLUMNS 表来拉取表的列信息:

SELECT  DATA_TYPE 
FROM    INFORMATION_SCHEMA.COLUMNS
WHERE   TABLE_CATALOG = 'YourDatabase'
AND     TABLE_SCHEMA = 'YourSchema'
AND     TABLE_NAME = 'YourTable'
AND     COLUMN_NAME = 'YourColumn'

【讨论】:

【参考方案4】:

您可以通过在 SQL Server 中使用TRY_PARSE 来操作列中的实际数据类型,以测试请求的数据类型是否允许;下面是一个示例代码。如您所见,值 200806 被解析为日期

SELECT
        TRY_PARSE('200806' AS DECIMAL )  AS 'decimal check',
        TRY_PARSE('200806' AS INTEGER)  AS 'integer Check',
        TRY_PARSE('200806' AS DATE )  AS 'date Check'

您可能还想在此处了解 TRY_CAST 或 TRY_CONVERT,但它们在 SQL 版本和兼容性级别方面有所不同[您需要具有 110 的兼容性才能执行该操作(即 SQL Server 2012+)]。 试试这个

SELECT
    TRY_CONVERT(decimal,'200806'  )  AS 'decimal check',
    TRY_CONVERT(INT,'200806' )  AS 'integer Check',
    TRY_CONVERT(DATE,'200806' )  AS 'date Check'

如果您总是考虑使用INFORMATION_SCHEMA 从 SQL Server 收集元数据信息。

【讨论】:

以上是关于如何在 SQL Server 中查看变量(列)的属性 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 中的两列之间交换数据是如何工作的?

在 SQL Server Management Studio for SQL CE 数据库中查看所有 ntext 列文本

我应该如何使用 sql server 中的存储过程将列名存储在变量中?

如何在sqlserver中获取表的所有列信息

sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样

SQL Server中,如何查看每个数据库的Owner是哪个SQL Server账户,也就是谁创建的