Sql 作为动态查询生成insert脚本时,即使列为nvarchar,也不会为该N添加前缀

Sql 作为动态查询生成insert脚本时,即使列为nvarchar,也不会为该N添加前缀,sql,sql-server,collation,Sql,Sql Server,Collation,作为动态查询生成insert脚本时,unicode字符N没有前缀,即使列是nvarchar 不带动态查询的Insert通过在N前面加前缀工作得很好。因为包含非拉丁字符,所以需要unicodeN-literal SELECT 'INSERT INTO test ( name ) VALUES ( '''+S1.name+''' )' from SourceTable S1 由于包含非拉丁1字符,因此需要unicodeN-literal SELECT 'INSERT INTO test ( na

作为动态查询生成insert脚本时,unicode字符N没有前缀,即使列是nvarchar


不带动态查询的Insert通过在N前面加前缀工作得很好。

因为包含非拉丁字符,所以需要unicode
N
-literal

SELECT 'INSERT INTO test ( name ) 
VALUES ( '''+S1.name+''' )' from SourceTable S1

由于包含非拉丁1字符,因此需要unicode
N
-literal

SELECT 'INSERT INTO test ( name ) 
VALUES ( '''+S1.name+''' )' from SourceTable S1

在等号后面加上N和列名,这是一个愚蠢的解决方案,但由于考虑太多,我花了很多时间

insert into [test] select N'―    menu1;'

在等号后面加上N和列名,这是一个愚蠢的解决方案,但由于考虑太多,我花了很多时间

insert into [test] select N'―    menu1;'

@塞德斯维德,没错!它成功了,谢谢你。。现在真正的问题是,在生成作为动态查询的插入脚本时,即使列是nvarchar,也没有为该N添加前缀。从SourceTable S1中选择“插入测试(名称)值('''+S1.name+'')”,选择N'INSERT…?选择N'INSERT…?-不幸未工作。。从[test]@Cedersved中选择N'UPDATE[test]SET name='''''+'name+'updated'+''''''''''''''''''+'',完全正确!它成功了,谢谢你。。现在真正的问题是,在生成作为动态查询的插入脚本时,即使列是nvarchar,也没有为该N添加前缀。从SourceTable S1中选择“插入测试(名称)值('''+S1.name+'')”,选择N'INSERT…?选择N'INSERT…?-不幸未工作。。从[test]中选择N'UPDATE[test]SET name=''''+'name+'updated'+''''''''''