【发布时间】:2019-11-26 15:17:51
【问题描述】:
我有一个 SSIS 包,其中包含一个使用执行 SQL 任务创建临时表的步骤。
在这个查询中,我有一个 case 语句,类似于:
Cast(Case
When billing_address is Like '%DONOTUSE%' Then 1
When billing_address is Like '%DONTUSE%' Then 1
Else 0
End as nvarchar)DoNotUseAccounts
我在另一个执行 SQL 任务中有一条更新语句,如下所示:
Update #StatementAccounts
Set Issues = Issues + ' - Do Not Use Account'
Where Product In ('prod1','prod2','prod3','prod4')
And DoNotUseCustomer= 1
执行包时收到错误消息:“错误:字符串或二进制数据将被截断。”
我是否使用了错误的数据类型?
Update 语句是否也需要强制转换/转换?
任何指导都会有所帮助。
我尝试过使用数据类型 int、numeric,并将更新语句也转换为 int。
【问题讨论】:
-
#StatementAccounts.Issues的数据类型是什么? -
你好,数据类型转换为nvarchar。
-
你在 nvarchar 上没有长度,比如 nvarchar(100)
-
-
修复回到创建临时表并延长问题的长度
标签: sql ssis sql-update global-temp-tables