【问题标题】:Sql to get column name with datatype and precision togetherSql 一起获取具有数据类型和精度的列名
【发布时间】:2015-08-07 21:13:23
【问题描述】:

大家好,我写了一个存储过程,显示参数值和数据类型如下

SELECT SCHEMA_NAME(SCHEMA_ID) AS [Schema], 
P.name AS [Parameter],
TYPE_NAME(P.user_type_id) AS [DataType]
FROM sys.objects AS SO
INNER JOIN sys.parameters AS P 
ON SO.OBJECT_ID = P.OBJECT_ID
WHERE SO.OBJECT_ID IN ( SELECT OBJECT_ID 
FROM sys.objects
WHERE TYPE IN ('P','FN')) AND SO.name = 'User_Update'
ORDER BY [Schema], SO.name, P.parameter_id

但我想查询它以显示如下以及它是否是强制性的,有人可以帮助我

【问题讨论】:

标签: sql-server-2014


【解决方案1】:

您可以从这个查询开始:

select top 10 SCHEMA_NAME(o.schema_id) AS [Schema], o.name AS [Function]
, p.parameter_id, p.name, t.name, t.max_length, t.precision, t.scale 
from sys.objects as o
    inner join sys.parameters as p on p.object_id = o.object_id
    inner join sys.types as t on t.system_type_id = p.system_type_id
where o.type in ('P','FN') AND o.name = 'User_Update'
    --  and p.name <> '' / p.parameter_id >= 1 remove output parameter
order by o.name, p.parameter_id

sys.parameters 中您需要的信息。

提示:

  • 对于 char 或 varchar,您可以查看 max_length。
  • 对于数字,您可以查看精度和小数位数
  • 参数 0 是标量函数的输出

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多