Copy a file or folder
Copies a file or folder to another location, either within the same drive or to another drive. You can give the copy a new name; placeholder functions (e.g. <<FUN_NOW>>) are supported for dynamic target names. If the target already exists, use ConflictBehavior to replace or rename.
SELECT *
FROM copy_item
WITH
(
-- ##### SOURCE #####
-- Source Drive
, DriveId = 'me'
-- OR use another user's / shared drive
-- , DriveId = 'b!0zqXXXXXXXXXXXXXXXXXXXXXXXX'
-- Item to copy (choose ONE)
-- Path format: root:/path/to/item:
, ItemId = 'root:/myfile.pdf:'
-- , ItemId = 'root:/myfolder/myfile.pdf:'
-- , ItemId = '01R65QTTRARZ42C4BN6FF2WOH3AONX4GUW' -- by ID (preferred)
-- ##### TARGET #####
-- Target Drive (only required when copying across drives)
-- , TargetDriveId = 'me'
-- , TargetDriveId = 'b!0zqXLXXJh0uXXXXXXXXXXXXxxxxxxxxx'
-- ##### TARGET FOLDER #####
-- Choose ONE format: Path OR Id
, TargetType = 'Path'
, TargetFolderPath = '/myfolder/subfolder'
-- , TargetFolderPath = '/myfolder/export_<<yyyy-MM-dd,FUN_NOW>>' -- folder must exist
-- , TargetType = 'Id'
-- , TargetFolderId = '01R65QTTTBPH6V2AP36VD33CYYDXJSNHLN'
-- , TargetFolderId = 'root'
-- ##### OPTIONS #####
-- New name for copied item (omit to keep source name)
, TargetItemName =
'new_file_<<yyyy-MM-dd-HH-mm-ss-fff,FUN_NOW>>.pdf'
-- What to do if target item already exists
-- Ignored if TargetItemName is supplied
-- , ConflictBehavior = 'replace' -- fail | rename | replace
-- Required for large items or cross-drive copies (async)
-- , Prefer = 'respond-async'
);