在源项目中使用sqlCommand:
SELECT SUBSTRING(MKGDiagnoses.ICD9Code, 2,7) AS ICD9Code
FROM ...
列ICD9Code输出长度为7个位置的字符串。 现在改为:
SELECT SUBSTRING(MKGDiagnoses.ICD9Code, 2,6) AS ICD9Code
FROM ...
因此,该列的数据类型将更改为 6 位置的字符串。
这样的更改从未反映在输出列的数据类型中,而外部列的数据类型确实更改为[DT_STR],长度为6。
这是预期的行为吗?这种行为是否可以覆盖?
答案 0 :(得分:1)
预期?有点?我无法在此找到我之前的答案,但基本的是在首次创建项目时设置元数据。这是一项昂贵的操作,因此设计人员试图限制它必须引用元数据的次数,因此更改数字的精度或增加/减少字符串的长度通常不是“足够大”的变化来强制元数据刷新请求。
如果我在演示时更改了一个列,我的懒惰就是重命名源查询中的列(然后将其命名)。
原始
SELECT SUBSTRING(MKGDiagnoses.ICD9Code, 2,7) AS ICD9Code
FROM ...
临时
SELECT SUBSTRING(MKGDiagnoses.ICD9Code, 2,6) AS ICD9CodeShort
FROM ...
还原
SELECT SUBSTRING(MKGDiagnoses.ICD9Code, 2,6) AS ICD9Code
FROM ...
如果要修复很多列,我通常会进行查询SELECT 1 AS foo
,然后重新打开编辑器并使用我的真实源查询。