如何通过DAX查询完整导入SSAS的nvarchar(4000)列至SQL Server?
解决SSAS导入MSDB时nvarchar(4000)字段被截断为255字符的简便方法
方法1:调整导入/导出向导的字段映射设置
在导入/导出向导的选择源表和视图步骤,点击「编辑映射」按钮:
- 找到目标表中对应的
nvarchar列 - 将「目标」列的「数据类型」从默认的
nvarchar(255)修改为nvarchar(4000)(或nvarchar(max)) - 保存映射后继续执行导入流程,即可直接获取完整的4000字符内容
方法2:修改SSIS包的列属性(若向导生成SSIS包)
如果导入/导出向导是生成SSIS包执行:
- 打开生成的SSIS包
- 找到数据流任务中的SSAS源组件
- 查看源组件的输出列属性,将目标长文本列的「长度」调整为4000
- 重新运行SSIS包,即可完整导入字段内容
方法3:用T-SQL直接查询SSAS并插入目标表
通过OPENROWSET或OPENQUERY直接在SQL Server中查询SSAS模型,一步完成数据导入:
使用OPENROWSET:
-- 启用Ad Hoc Distributed Queries(若未开启) sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; -- 直接插入完整数据 INSERT INTO [Investigation] ([Investigation], [Examination]) SELECT [Investigation], [Examination] FROM OPENROWSET( 'MSOLAP', 'Data Source=你的SSAS服务器名;Initial Catalog=你的SSAS数据库名;', 'EVALUATE Investigation' );
使用链接服务器(OPENQUERY):
-- 先配置SSAS链接服务器(略) INSERT INTO [Investigation] ([Investigation], [Examination]) SELECT [Investigation], [Examination] FROM OPENQUERY(你的SSAS链接服务器名, 'EVALUATE Investigation');
以上方法均无需拆分拼接字段,可一步到位获取完整的4000字符内容。
内容的提问来源于stack exchange,提问作者Murphy013
相关产品推荐
相关产品推荐

