我正在尝试使用仅包含sql查询中的键的txt文件。
SELECT
*
FROM
MyTable
JOIN
OPENROWSET (
BULK '<File-Of-Ids>.txt',
FORMATFILE = '<Format-File>.txt'
) B ON MyTable.Id = B.Id
WHERE
<a field> = <a value> AND <another field> = <another value>
但是我收到以下错误:将数据类型nvarchar转换为bigint时出错。
对我来说很明显,需要对文件的输入进行一些转换。任何人都能指出我正确的方向吗?提前谢谢!
答案 0 :(得分:0)
其中一个ID列的内容不是0-9。这可能不是设计上的。但你可以将它们都投射到VARCHAR
来解决这个问题。您可能希望检查数据并清理它。
CONVERT(VARCHAR, MyTable.Id) = CONVERT(VARCHAR, B.Id)
您还可以将.txt
文件带入声明和格式化的TEMP TABLE
。这样,如果源文件与temp不匹配,则会引发错误。