1
我有一个带有nvarchar参数的存储过程。我想用OPENROWSET得到返回的表。但是当我使用如下代码的结果将是不正确OpenRowSet中的Unicode查询
Declare @ID int
Declare @sql nvarchar(max)
Declare @p1 nvarchar(8)
Set @ID=1
Set @sql='SELECT *
FROM OPENROWSET(
''SQLNCLI'',
''DRIVER={SQL Server};'',
''EXEC dbo.usp_test @p1 =''''' + @p1 + ''''')'
Exec(@sql)
的OPENROWSET将我的查询转换为VARCHAR,不正确地执行我的程序。 似乎OPENROWSET执行我的代码是这样的:
exec dbo.usp_test @p1='????????'
所以结果是不正确的。 OPENROWSET有没有选择来解决我的问题?
'Set @ sql = N'SELECT * ....' - 这是否工作? – 2013-04-20 05:23:04
nope。你的解决方案不起作用 – 2013-04-20 06:06:38
@sheykholeslam:尝试'... @ p1 = N'''''+ ...' – 2013-04-20 19:02:29