我需要更改实例中数据库的所有文件位置。基本上,由于当前目录的tospace限制,我需要将实例移动到同一服务器上的新位置。这些文件将全部移动到同一个新位置,名称将保持不变。所以它只是需要改变的路径。 (这听起来很简单,令人沮丧的是我无法让它工作。:-))
我正在尝试使用sp_MSForEachDB
,但似乎无法正确传递引号来传递FILENAME = parameter
ALTER DATABASE
命令的DECLARE @command NVARCHAR(1000)--, @filename NVARCHAR(100)
SELECT @command = '
BEGIN
DECLARE @filename nvarchar(100)
USE ?
SELECT @filename =
"F:\DevworxExtStorage\Databases\MSSQL12.DEVSQL2014\MSSQL\DATA\" + ? + ".mdf"
ALTER DATABASE ? MODIFY FILE ( NAME = ?, FILENAME =
"F:\DevworxExtStorage\Databases\MSSQL12.DEVSQL2014\MSSQL\DATA\")
SELECT @filename =
"F:\DevworxExtStorage\Databases\MSSQL12.DEVSQL2014\MSSQL\DATA\" + ? + "_log.ldf"
ALTER DATABASE ?_log MODIFY FILE ( NAME = ?, FILENAME = @filename)
END'
exec sp_MSforeachdb @command
SELECT @command = 'ALTER DATABASE ? SET offline'
exec sp_MSforeachdb @command
中的新文件位置。
这是我到目前为止所拥有的。
mongoimport
我正在
Msg 102,Level 15,State 1,Line 10'@ filename'附近的语法不正确。
这是一个开发数据库实例,因此上下调整不是问题。我更喜欢这种方法而不是备份/恢复,因为它将在几秒钟而不是几分钟内完成。 我们将来也会多次使用它,因此将其作为脚本非常重要。我知道手动发布脚本中的步骤。
我只需要帮助调试脚本,我认为这是一个引号正确的问题。在此先感谢您的帮助!
答案 0 :(得分:1)
你必须改变一点引号:
@app.route('/binary_object/{bucket}/{key}', methods=['GET', 'PUT'])
def binary_object(bucket, key):
request = app.current_request
if request.method == 'GET':
try:
file_path = '/tmp/{}_{}'.format(uuid.uuid4(), key)
s3_client.download_file(bucket, key, file_path)
file_size = os.path.getsize(file_path)
headers = {'Content-Disposition': 'attachment; filename=\"' + key + '\"',
'Content-Type': 'application/octet-stream',
# 'Content-Type': 'image/*',
'Content-Length': str(file_size)}
fsk = open(file_path, 'rb')
return Response(body=fsk, headers=headers, status_code=200)
except Exception as e:
print e
raise e
对字符串使用单引号,并使用双引号来转义单引号。