在SQLServer2005中使用存储过程时格式化sql查询中的字符串
我的存储过程中有一个查询:在SQLServer2005中使用存储过程时格式化sql查询中的字符串,sql,sql-server-2005,Sql,Sql Server 2005,我的存储过程中有一个查询: IF @backup = 0 BEGIN SELECT sql = 'BACKUP DATABASE MyDatabase TO DISK="'+@file+'"'; END @文件是nvarchar(MAX)和备份是int 如果执行以下存储过程: DECLARE @return_value int EXEC @return_value = [dbo].[usp_cp_backup_restore_db] @ba
IF @backup = 0
BEGIN
SELECT sql = 'BACKUP DATABASE MyDatabase TO DISK="'+@file+'"';
END
@文件
是nvarchar(MAX)
和备份
是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'
相应地
有什么建议吗
谢谢不要在初始字符串中使用“
,而是使用'
。SQL知道,如果将两个'
放在一起,您的意思是'
出现在字符串中(而不是结束一个字符串并开始另一个字符串)
当然,它看起来很奇怪,但很有效。在初始字符串中使用“
,而不是使用”
。SQL知道,如果将两个'
放在一起,则表示'
出现在字符串中(而不是结束一个字符串然后开始另一个字符串)
SELECT sql = 'BACKUP DATABASE MyDatabase TO DISK='''+@file+''''
当然,它看起来很奇怪,但它可以工作。然后将变成
备份数据库ContentPlatform TO DISK=@file
这是错误的。您不能将'
放在仅包含'
的字符串中。这将终止字符串。您需要'
(对于字符串中所需的每个'
),然后将变成将数据库ContentPlatform备份到磁盘=@file
,这是错误的。您不能将'
放在仅包含'
的字符串中。这将终止字符串。您需要使用'
(对于字符串中所需的每个'
)。
SELECT sql = 'BACKUP DATABASE MyDatabase TO DISK='''+@file+''''