Sql server 变量名和字符串连接'+';错误为语法不正确

Sql server 变量名和字符串连接'+';错误为语法不正确,sql-server,database-restore,Sql Server,Database Restore,在上面的SQL脚本中,我得到一个错误: '靠近'+'的语法错误 有什么想法吗?你的变量是什么数据类型?我使用varchar数据类型,如下所示声明@db_physical_path varchar(200)欢迎使用StackOverflow:如果你发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击“代码示例”按钮({})在编辑器工具栏上很好地格式化和语法突出显示它!marc_s,感谢您的快速响应,但此解决方案不起作用,错误仍然存在。我测试了此解决方案,它似乎在SQL Server

在上面的SQL脚本中,我得到一个错误:

'靠近'+'的语法错误


有什么想法吗?

你的变量是什么数据类型?我使用varchar数据类型,如下所示
声明@db_physical_path varchar(200)欢迎使用StackOverflow:如果你发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击“代码示例”按钮(
{}
)在编辑器工具栏上很好地格式化和语法突出显示它!marc_s,感谢您的快速响应,但此解决方案不起作用,错误仍然存在。我测试了此解决方案,它似乎在SQL Server 2008 R2中工作。您使用的是什么版本的SQL?顺便说一句:是Jonysuise回答的。然后试着把所有的句子还原成nvarchar字符串,然后运行sp_executesql@var。谢谢marc_的提示。
RESTORE DATABASE Umbraco6
FROM  DISK = 'C:\Temp\initial_db.bak'
    WITH  MOVE 'Umbraco6'     TO @db_physical_path  + '\test_data.mdf',
MOVE 'Umbraco6_log' TO  @db_physical_path + '\test_data.ldf',
REPLACE
declare @db_physical_path_data nvarchar(200)
declare @db_physical_path_log nvarchar(200)

set @db_physical_path_data = @db_physical_path + '\test_data.mdf'
set @db_physical_path_log = @db_physical_path +'\test_data.ldf'

RESTORE DATABASE Umbraco6
 FROM DISK = N'C:\Temp\initial_db.bak'
 WITH MOVE N'Umbraco6' TO @db_physical_path_data,
 MOVE N'Umbraco6_log' TO @db_physical_path_log, REPLACE