I finally got what I wanted but not by using BCP, but SQLCMD.
For each tables containing at least one record in my table, it creates a file with "inserts"
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
DECLARE @databasename NVARCHAR(200)=N'dbname'
DECLARE @servername NVARCHAR(50)=N'host\instance'
DECLARE @location NVARCHAR(1000)=N'D:\path_to_folder\'
DECLARE @filename NVARCHAR(200)
DECLARE @strTablename NVARCHAR(50)
DECLARE @variable VARCHAR(1000)
DECLARE MyCursor CURSOR FOR
SELECT b.name
FROM dbname.sys.partitions a
join dbname.sys.tables b
ON a.object_id=b.object_id
WHERE b.type='u'
and a.rows > 0
OPEN MyCursor
FETCH Next FROM MyCursor INTO @strTablename
WHILE @@Fetch_Status = 0
BEGIN
SET NOCOUNT ON
SET @filename = @location+@strTablename+'.sql'
SET @variable = 'sqlcmd -S '+@servername+' -E -d'+@databasename+' -Q "select ''SET IDENTITY_INSERT '+@strTablename+' ON''" >> '+@filename+''
EXEC xp_cmdshell @variable
SET @variable = ''
SET @variable = 'sqlcmd -S '+@servername+' -E -d'+@databasename+' -Q "exec '+@databasename+'.dbo.InsertGenerator '+@strTablename+'" >> '+@filename+''
EXEC xp_cmdshell @variable
SET @variable = ''
SET @variable = 'sqlcmd -S '+@servername+' -E -d'+@databasename+' -Q "select ''SET IDENTITY_INSERT '+@strTablename+' OFF''" >> '+@filename+''
EXEC xp_cmdshell @variable
SET @variable = ''
FETCH Next FROM MyCursor INTO @strTablename
END
CLOSE MyCursor
DEALLOCATE MyCursor
GO
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 0
GO
RECONFIGURE
GO
Franck.