• 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.