我想要表格的列名。
所以我试试这个
UICollectionViewCell
但是这并没有显示任何数据..这就是我尝试使用动态SQL的原因。
override func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval)
{
if let indexPath = self.collectionView.indexPathsForSelectedItems?.first
{
let attributes: UICollectionViewLayoutAttributes? = collectionView.layoutAttributesForItem(at: indexPath)
print("center: \((attributes?.center)!)")
}
}
但是我收到了这个错误:
找不到任何一列" dbo"或用户定义的函数或聚合" dbo.fnproduct",或名称不明确。
帮我解决这个问题或建议我替代方法 和雅..我想在这里传递函数
答案 0 :(得分:3)
尝试此查询:
SELECT c.name [ColumnName]
FROM sys.columns C
INNER JOIN sys.objects O ON C.Object_id = O.Object_Id
WHERE O.NAME = 'FunctionName'
答案 1 :(得分:1)
您可以从系统视图INFORMATION_SCHEMA.COLUMNS
只需选择
SELECT
*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YouTableName'
注意:
如果您正在尝试从函数中获取列名列表(这是我在查看您的代码时的感受)这是不可能的,因为函数没有列名,除非它是表有价值的功能。在那种情况下使用此
SELECT *
FROM sys.columns
WHERE object_id=object_id('dbo.YourTVF')
答案 2 :(得分:1)
你不需要动态sql
select *
from sys.columns
where object_id = object_id('fnproduct')
如果您需要输入参数,请从sys.parameters
答案 3 :(得分:1)
SELECT c.name, [type] = t.name, c.max_length, c.[precision], c.scale
FROM sys.columns AS c
INNER JOIN sys.types AS t
ON c.system_type_id = t.system_type_id
AND c.user_type_id = t.user_type_id
WHERE c.[object_id] = OBJECT_ID('fnproduct')
答案 4 :(得分:0)
为什么不使用INFORMATION_SCHEMA.COLUMNS
;
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'SampleTable'
另外,我不知道fnproduct()
返回什么,但你应该指定数据库和表名;
USE SampleDatabase
select *
from sys.columns
where object_id = OBJECT_ID('TableName')