【问题标题】:How to display SQL Server default constraints in asp classic?如何在 asp classic 中显示 SQL Server 默认约束?
【发布时间】:2016-07-21 13:44:21
【问题描述】:
SELECT 
    TableName = t.Name,
    ColumnName = c.Name,
    dc.Name,
    dc.definition 
FROM
    sys.tables t 
INNER JOIN 
    sys.default_constraints dc ON t.object_id = dc.parent_object_id 
INNER JOIN 
    sys.columns c ON dc.parent_object_id = c.object_id 
                  AND c.column_id = dc.parent_column_id 
ORDER BY 
    t.Name

Asp 经典页面无法显示 - dc.definition。 TableName、ColumnName、Name 在记录集中显示正常,但不是<definition>。使用 VarType 测试值类型是说:(1)没有有效数据。

【问题讨论】:

    标签: asp-classic sql-server-2008-r2


    【解决方案1】:

    定义字段可能为空,或者“定义”可能是关键字。尝试添加一些代码来转移这些问题,即:

    SELECT 
      TableName = t.Name,
      ColumnName = c.Name,
      dc.Name,
      ISNULL(dc.definition,'') AS [definitionField] 
    

    【讨论】:

    • 达里尔,谢谢,但仍然是同样的问题。我故意使所有列都具有有效(非空)的默认值。 SSMS 中的查询也按预期工作,定义字段显示正确的默认值。请注意,它们显示在括号中。 Single 用于字符串,double 用于数字。通过 Replace(Replace.. etc. 删除括号仍然没有帮助。
    • 括号会是问题吗?作为测试,我会尝试将一些垃圾连接到 select 语句的那部分——'x' + ISNULL(dc.definition,'') + 'x' AS [definitionField]
    • 没有变化。我看到两个'X'-es,但没有看到两者之间的 [definitionField]。另一方面,默认值也可以是 GetDate()。这应该如何在小说查询中显示?我开始认为这些默认值是供内部服务器使用而不是导出的。但我试图专注于一个单一的,我知道这是一个数字,但仍然是一样的。那很奇怪。我怎么能成为第一个遇到这个问题的人。在谷歌搜索和这个网站上也没有太多的结果。谢谢!
    • 奇怪的是,您看到的是“X”而不是您要查找的数据,好像数据在发送之前就被丢弃了。我能想到的唯一另一件事是将其包装在 CAST 中以尝试排除数据类型问题:CAST(ISNULL(dc.definition,'') AS varchar(5000)) AS [definitionField]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多