我有我的存储过程中的查询:格式字符串时使用存储过程在SQL Server 2005
IF @backup = 0
BEGIN
SELECT sql = 'BACKUP DATABASE MyDatabase TO DISK="'[email protected]+'"';
END
@file
是nvarchar(MAX)
和backup
是int
。
如果我执行,如存储过程:
DECLARE @return_value int
EXEC @return_value = [dbo].[usp_cp_backup_restore_db]
@backup = 0,
@file = N'C:\backupFiles\MyDatabase.bak'
但结果变成: BACKUP DATABASE ContentPlatform TO DISK="C:\backupFiles\MyDatabase.bak"
我希望出现BACKUP DATABASE ContentPlatform TO DISK='C:\backupFiles\MyDatabase.bak'
因为正确的格式是
BACKUP
DATABASE MyDatabase TO
DISK='C:\MyDatabase.bak'
有什么建议吗?
感谢
然后将成为'BACKUP DATABASE ContentPlatform TO DISK = @文件' –
这是错误的。你不能只用'''把''放在字符串中。这将终止字符串。你需要''''而不是*(对于你想要的字符串中的每个''')*。 – MatBailie
修复缺少' –