【发布时间】:2014-06-23 15:25:07
【问题描述】:
我正在使用动态 SQL 向表中插入数据:
SET @Profiles = N'SELECT ''' + @var1 + ''' as col1, col2, col3, col4, col5, col6, col7
FROM ' + @TableName + 'tbl1'
INSERT INTO
table (col1, col2, col3, col4, col5, col6, col7)
EXEC (@Profiles)
以上查询在存储过程中,由作业运行。
我注意到当作业运行时,正确插入了带有日语字符的数据,但是当作业完成并且我在插入的表上进行选择时,它返回“?”而不是日文字符。我正在使用排序规则SQL_Latin1_General_CP1_CI_AS,我的列数据类型是nvarchar。我也尝试更改排序规则,但即使使用日语排序规则,它也会返回“?”。你知道我该如何处理吗?
编辑 1 我忘了补充说存储过程驻留在 SSIS 包中。也许它可以提供帮助。
【问题讨论】:
-
您是否在每一步都在处理
NVARCHAR数据类型?例如,您是在使用VARCHAR变量还是在插入之前从VARCHAR列中选择数据? -
源列和目标列的数据类型及其大小相同。此外,当我手动运行存储过程时也可以。当我从作业运行存储过程时会出现问题。
标签: sql sql-server-2008 collation