gpt4 book ai didi

sql-server - SQL Server 中函数的列名

转载 作者:行者123 更新时间:2023-12-02 18:49:22 25 4
gpt4 key购买 nike

我想要表的列名称。

所以我试试这个

select * 
from sys.columns
where object_id = OBJECT_ID('dbo.fnproduct()')

但这没有显示任何数据..这就是我尝试使用动态 SQL 的原因。

begin
declare @sql nvarchar(max) = 'select * from sys.columns
where object_id=OBJECT_ID('''+dbo.fnproduct()+''')'

print @sql

exec sp_executesql @sql
end

但我收到此错误:

Cannot find either column "dbo" or the user-defined function or aggregate "dbo.fnproduct", or the name is ambiguous.

帮助我解决这个问题或建议我替代方法是的..我想在这里传递函数

最佳答案

您可以从系统 View 中获取表的所有列的列表INFORMATION_SCHEMA.COLUMNS

只需选择

SELECT
*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YouTableName'

注意:

如果您尝试从函数中获取列名列表(这就是我在查看代码时的感受),这是不可能的,因为函数没有列名,除非它是表值函数。在这种情况下使用这个

SELECT *
FROM sys.columns
WHERE object_id=object_id('dbo.YourTVF')

关于sql-server - SQL Server 中函数的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48274906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com