【发布时间】:2013-04-20 05:18:23
【问题描述】:
我有一个带有 nvarchar 参数的存储过程。我想使用 OPENROWSET 返回表。但是当我使用以下代码时,结果会不正确
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 *....- 这行得通吗? -
不。您的解决方案不起作用
-
@sheykholeslam:试试
... @p1 = N''''' + ...
标签: sql-server-2005 stored-procedures unicode nvarchar openrowset